pandas操作总结

1.如何转换数据类型:

dollarizer = lambda x: float(x[1:])
chipo.item_price = chipo.item_price.apply(dollarizer)
2.读取表格数据:不仅可以使用read_csv还可以使用read_table
users = pd.read_table('https://raw.githubusercontent.com/justmarkham/DAT8/master/data/u.user', 
                      sep='|', index_col='user_id')
  3.列取列名,返回一个list列表
 list(df.columns)
 4.查看各列的数据类型:
df.dtypes
colums.dtypes#查看某一列的数据类型
5.保留几位小数:
round(users.age.mean(),2)

6.取出某列的列名

food.columns[104]

7.取出某列的数据类型

food.dtypes['glucose_100g']

8.取出符合某种条件的df可以使用如下的方式:
chipo[(chipo.item_name == "Canned Soda") & (chipo.quantity > 1)]
9.使用numpy科学计算库计算均值、最大值、最小值:
tmp_result=drinks.groupby('continent').spirit_servings.agg({"my_mean":np.mean,"my_min":np.min,"my_max":np.max})
users.groupby('occupation').age.agg(['min', 'max'])
users.groupby(['occupation', 'gender']).age.mean()
10、除法的使用:(两个dateframe之间的除法)
occup_gender = gender_ocup.div(occup_count, level = "occupation") * 100
12.如何输出分组后的信息:
    for name, group in regiment.groupby('regiment'):
           # print the name of the regiment
           print(name)
           # print the data of that regiment
           print(group)
 13.如何定义匿名函数:
captalizer = lambda x: x.upper()
14.对所有列都应用同一个函数,变换如下:
        df.applymap(函数名称)
 15.把整型数据换成日期型:
 crime.Year = pd.to_datetime(crime.Year,format='%Y')
 16.对样本采样的函数:
 crimes = crime.resample('10AS').sum()
 17.返回每一列中出现最大值的索引:
       df.idxmax()
  18.把两个df按列拼接在一起
  cars = cars1.append(cars2)
  19.如何对一个列重命名
  housemkt.rename(columns = {0: 'bedrs', 1: 'bathrs', 2: 'price_sqr_meter'}, inplace=True)
20.把一个series转化成dataframe
  bigcolumn = bigcolumn.to_frame()
 21.统计分类变量的频数:
 baby_names['Gender'].value_counts('F')
 22.sort_value的两种不同用法
 names.sort_values("Count", ascending = False).head()##返回的是dataframe
 names.Count.sort_values(ascending =False).head()##返回的是series
 23.查看数据
 !head 数据地址
 24.将列拼接在一起生成日期列:
 data = pd.read_csv("wind.data", sep = "\s+", parse_dates = [[0,1,2]]) 
 25.利用函数处理日期:
 def fix_century(x):
    if x.year > 1989:
        year = x.year - 100 
    else:
        year=x.year
    return datetime.date(year, x.month, x.day)
data['Yr_Mo_Dy'] = data['Yr_Mo_Dy'].apply(fix_century)
data.head()
26.统计列的缺失值的个数:
data.isnull().sum()
27.创建一个空的dateframe,然后再创建新的列:
loc_stats = pd.DataFrame()
loc_stats['min'] = data.min() # min
loc_stats['max'] = data.max() # max 
loc_stats['mean'] = data.mean() # mean
loc_stats['std'] = data.std() # standard deviations
28.按周采样
weekly = data.resample('W').agg(['min','max','mean','std'])
january_winds = data.query('month == 1')#访问某列为某个数值的数据
29.注意间隔采样的用法
df[::7]#每隔7个数据采一个样本
df[:7]#采前7个样本,注意和上面的区别
30.删除某些列
wine = wine.drop(wine.columns[[0,3,6,8,11,12,13]], axis = 1)
31.重新给列命名
wine.columns = ['alcohol', 'malic_acid', 'alcalinity_of_ash', 'magnesium', 'flavanoids', 'proanthocyanins', 'hue']
32.删除行,行中包含空缺值
wine = wine.dropna(axis = 0, how = "any")
33.判断某列数据是不是全不一样
apple.index.is_unique#返回是逻辑值
34.每月按正常工作日采样
apple_month = apple.resample('BM').mean()
35.加载时间的包,生成时间
import datetime as dt
start = dt.datetime(2015, 1, 1)
end = dt.datetime.today()

猜你喜欢

转载自blog.csdn.net/cxlhuihui/article/details/80003670