pandas修改DataFrame行/列/字段值
pandas修改dataframe行/列/字段值增加/修改一列有如下几种方法增加一列:增加具有相同值的一列import pandas as pddict= {'English':[85,73,98], 'Math':[60,80,58], 'Science':[90,60,74], 'French': [95,87,92] }df=pd.DataFrame(dict,index=['2018','
·
增加/修改一列
有如下几种方法增加一列:
- 增加具有相同值的一列
import pandas as pd
dict= {'English':[85,73,98], 'Math':[60,80,58], 'Science':[90,60,74], 'French': [95,87,92] }
df=pd.DataFrame(dict,index=['2018','2019','2020'])
print(df)
print('\n')
print('Adding new column:')
print('\n')
df['Economics']=99
print(df)
结果如下:
- 增加定制值的一列,此方法也可以修改原有值
df['Economics']=99
df['Economics']=[99,85,56]
print(df)
df.at[:,'Economics']=[78,85,74]
print(df)
df.loc[:,'Economics']=[94,87,86]
print(df)
df2=df.assign(Economics=[92,81,66])
print(df)
输出如下:
增加/修改一行
语法基本同列,直接上代码:
# 增加具有相同值的一行
df.at[2021,:]=100
print(df)
# 定制值,该方法也可修改该行原有值
df.loc['2022',:]=[89,21,87,59,22]
print(df)
输出如下:
删除列
代码:
# 只有删除一列
del df['Economics']
# 可删除多列,有多个参数,其中,axis=1表示列,0表示行,inplace表示是否本地修改,默认False,返回修改后的df,原df不变,True则表示修改原来的df
df.drop(['English','Science'],axis=1,inplace=True)
结果如下:
删除行
使用drop即可:
import pandas as pd
dict= {'English':[85,73,98], 'Math':[60,80,58], 'Science':[90,60,74], 'French': [95,87,92] }
df=pd.DataFrame(dict,index=['2018','2019','2020'])
df.at[2021,:]=100
df.at[2022,:]=[99,98,97,96]
print(df)
print('\n')
print('Deleting a row:')
print('\n')
df.drop(['2019'],axis=0,inplace=True)
print(df)
print('\n')
print('Deleting multiple rows:')
print('\n')
df.drop(df.index[[0,2]],axis=0,inplace=True)
print(df)
结果如下:
修改指定值
可以基于指定的列名和行名修改,也可以根据指定的行号和列号修改。
示例如下:
import pandas as pd
dict= {'English':[85,73,98], 'Math':[60,80,58], 'Science':[90,60,74], 'French': [95,87,92] }
df=pd.DataFrame(dict,index=['2018','2019','2020'])
print(df)
# 基于指定的列名和行名修改
using_name=df.Math['2019']=99
print(df)
# 根据指定的行号和列号修改
using_index=df.iloc[2,2]=99
print(df)
结果如下:
小结
DataFrame提供了丰富的方法来操作数据,可以方便地对行列进行增删改操作。
参考资料:https://www.c-sharpcorner.com/article/add-assign-and-modify-values-in-dataframe/
更多推荐
已为社区贡献12条内容
所有评论(0)