从csv读取数据
import pandas as pd
df=pd.read_csv("地址")
# 若为xlsx
df=pd.read_excel("地址")
# 选取行
rows=df[0:3]
rows
# 选取列
cols=df[['1','2']]
cols.head() # head展示前五行(表头除外)
# 选取块
df.ix[0:3,['1','2']] # 三行两列的数据
# 数据分割
df2=df[80:90][['1','2']]
向csv写入数据
df.to_csv("空文件地址",columns=["name1","name2"],index=False,header=True)
df.to_excel(...)
注意:columns里的列必须存在于df文件中。
index是索引,若添加索引则放置在第一列。
header是列头。
数据概览
# 查看数据信息
df.info()
# 描述性信息如最值,平均值
df.describe()
操作行列
建立新的列
df['3']=df['1']+df['2']
筛选符合条件块
df[(df['1']<100)&(df['2']>10000)]
排序
设置关键字并排序:
df1=df.set_index('1')
df1=df1.sort_index()
df1.head()
多个关键字:
df2=df.set_index(['1','2']).sortlevel(0) # 根据第一个索引排序
df2.head()
分组:
means=df['1'].groupby(df['2'],df['3']).mean()
df.groupby(['2','3']).mean() # 其他所有行的平均值,非数值列会被自动排除
df.groupby(['2','3']).size()
分组计算均值,求和:
# axis=0删掉行,axis=1删掉列
df_mean=df.drop(['1','2'],axis=1).groupby('place').mean().sort_values("money",ascending=False)
df_sum=df.drop(['1','2'],axis=1).groupby('place').sum().sort_values("money",ascending=False)
合并两表
pd.merge(df1,df2)
生成数据透视表
df2=pd.pivot_table(df,values=['price'],index=['from'],columns=['to'])
处理缺失值
df.fillna('missing') # 用missing代替NAN
df.fillna(df.mean()) # 用平均值代替NAN
统计某特征
valid_count=df.groupby(['name'])['valid'].value_counts()