admin 管理员组文章数量: 887007
Python,Pandas处理csv文件常用操作总结
python中引入pandas包可以很方便的对csv格式的数据进行处理
import pandas as pd
csv文件的读写
data = pd.read_csv('D:\data\train.scv',names=['ID','index'],dtype={'ID':pd.np.string_},index_col=0)
#names指定列名,dtype指定读取的格式,index_col指定索引的位置
data.columns = ['ID','index']
#读入后指定列名
data.rename(columns={'ID':'name','index':'goal'}, inplace = True)
#读入后更改列名
data.to_csv('D:\data\train.scv',encoding='utf-8')
#写入文件
csv文件的拼接
对记录相同类型数据的csv文件进行简单的内容拼接
df3 = pd.concat([df1,df2],axis=0)
#axis=0表示行拼接,axis=1表示列拼接
concat只是进行简单的内容拼接,比如df1有100行,df2有100行,那么拼接后的df3有200行
csv文件的合并
两个csv文件按照某一列的值进行合并,例如相同ID号的数据进行合并
df3 = pd.merge(df1,df2,on=['ID'],how='left')
#将df1和df2中ID号相同的行进行合并
删除某些列
将csv文件中的某些列删除
df1 = df1.drop(['grid_x','grid_y'],axis=1)
#grid_x,grid_y是要删除的列,axis=1表示列删除
删除重复行
删除指定列值相同的行
df1= df1.drop_duplicates(subset=['ID','index'],keep='first')
#删除ID,index的值相同的行,重复行保留第一个
改变列值的数据类型
df1['hour'] = df1['hour'].astype(str)
##将df1中的hour属性的类型改为str
数据特定长度截断
对某一列的数据的长度进行截取
df1['time'] = round(df1['time'],6)
#将time的数据保留6位,例如从20200424保留6位为202004
数据分组操作
根据某一列数据的值对其分组并进行求和,求平均,求方差等操作
dict_mean = dict(df1.groupby(['ID']).mean()['index'])
#按照ID号进行分组,将具有相同ID号的行分到一组并求index的均值
#并保存到一个字典中dict_std = dict(df1.groupby(['ID']).std()['index'])
#按照ID号进行分组,将具有相同ID号的行分到一组并求index的方差
#并保存到一个字典中
选择特定行
根据条件选择特定行
df1 = data[data['ID'].isin(['3'])]
#将ID值为3的行选出df1 = data[data['ID'].~isin(['3'])]
#选择ID值不为3的行df1=data[data['index']>=7]
#选择index值大于等于7的行
对某列的值进行操作
df1['new_ID']=df1.ID.apply(lambda x:x-10 if x>=10 else x)
#对df1的ID值进行操作,当值大于10时减10,否则保持原值
#对字符串或者其他类型的值也可以类似的进行操作
空缺值填零
df1['Index'] = df1['Index'].fillna(0.0)
#index中的空缺值补零
匹配字典
#dict_id: key是ID,values是name
df1['name']=df1['ID'].map(dict_id)
#每行的name值等于其ID值在字典中对应的name值
本文标签: python Pandas处理csv文件常用操作总结
版权声明:本文标题:Python,Pandas处理csv文件常用操作总结 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1730865174h1397049.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论