import pandas as pd
获取列名列表:
cols
重新调整列的顺序(将data2的列顺序按data1的列顺序来调整,data1和data2的字段一样,仅顺序不同):
cols = list(data1)
data2 = data2.ix(:, cols)
将某一列'name'变为索引:
data = data.set_index('name')
所有行按索引cols重新排序:
data = data.reindex(cols)
将索引变为第一列:
data.reset_index(level=0, inplace=True)
删除掉一些行后索引重新排序:
data.reset_index(drop=True, inplace=True)
基于text_id将data1匹配data2:
data = pd.merge(data1, data2, how='inner', on='text_id')
类似于excel中的vlookup,sql中的join,分为左匹配,右匹配,内匹配和外匹配。
统计某一列'ID'的数量(去重后数量):
data['ID'].nunique()
新增一列(如新增'relation'):
data['relation'] = 'include'
取出某些列(如取出'name','relation'):
data = data[['name','relation']]
重命名列'relation'为'entity1'、'name'为'entity2':
data = data.rename(columns={'relation':'entity1', 'name':'entity2'})
将多个dataframe拼接在一起:
data = pd.concat([data1, data2, data3]) #列数相同,按列拼接行
data = pd.concat([data1, data2, data3], axis=1) #行数相同,按行拼接列
读取dataframe时出错,可考虑添加error_bad_lines=True
data = pd.read_csv(file, sep='t', encoding='utf-8', error_bad_lines=True)
对一列的全部值作更改,要善于用apply()函数:
data['values'] = data['values'].apply(lambda x:(x+1))
用pandas打开文件时报错,可以先尝试设置read_csv中的参数error_bad_lines=True,如果还是不行,则先用open函数读取,设置errors='ignore',另存为文件,再用pandas读取:
with open(file,'r',encoding='utf-8',errors='ignore') as f:
data = f.read()
with open(writefile,'w',encoding='utf-8') as fwrite:
fwrite.write(data)
data = pd.read_csv(writefile, encoding='utf-8')
pandas需要显示全部列或全部行,请设置:
pd.set_option('display.max_columns', None) #显示所有列
pd.set_option('display.max_rows', None) #显示所有行
#设置value的显示长度为100,默认为50
pd.set_option('max_colwidth',100)
pandas随机抽取数据:
data.sample(n=20000) #随机抽取20000条样本数据
data.sample(frac=0.8) #随机抽取其中80%的样本数据
读取时新增列名:
data = pd.read_csv(file, encoding='utf-8', names=['id', 'name'])
读取时头列不作为列名:
data = pd.read_csv(file, encoding='utf-8', header=None)
将数据分组后保存为excel和json文件:
#设data有text, label, label_id三列,对label、label_id进行分组:
将EXCEL表中同一ID的不同内容合并:
#设用"|"合并
data['label'] = data['label'].apply(x:'|'+ str(x))
concat_data = data.groupby(by='ID').sum()
concat_data['label'] = concat_data['label'].apply(x:x[1:])
concat_data.reset_index(level=0, inplace=True)
concat_data.to_excel(file, index=None)
Pymongo导出csv格式数据:
import
持续更新中......