分享

python数据分析专题(15):修改数据

 zjshzq 2020-07-31

很多时候,读入的数据并不能满足数据分析的需求,还需要对原数据进行处理,例如修改行列名字,修改数字,增加行列,批量修改数据等,例如将1全部替换为True,将0全部替换为False。


修改表格数据

修改数据的操作逻辑是是首先定位到数据,也就是利用索引,比如修改数据x第3行第5列的值,x.iloc[2,4],接下来重新赋值即可。所以,正确索引非常重要。

data = pd.DataFrame({'a':[1,2,3],'b':[4,5,6],'c':[7,8,9]})
data
data['d']=[10,11,12]
data['a']=[2,2,2]

修改行名列名

有些时候,原文件中的行列名不符合规范,需要进行修改,比如修改大小写,去掉点号等。可以使用rename方法进行操作。

#修改行名
mtcars.rename(index={'Fiat 128':'fiat128'})
mtcars.rename(index={'Fiat 128':'fiat128'},inplace=True)
#修改列名
#mtcars.reset_index()
mtcars.rename(columns={'cyl':'cylinder','mpg':'MPG'})
mtcars.rename({'cyl':'CYL'},axis=1)

增加删除行列

对原文件增加行列,例如在Excel中按行求和与按列求和,求和完成之后添加行列。

#添加删除行列
mtcars.drop(axis=1,index='Merc 230',columns='cyl')
mtcars['mpg2']=mtcars.mpg*2
x.loc[151,:]=x.apply(axis=0,func=sum)

批量替换

将原文件中mpg列大于20的值,替换为True,否则替换为False。对cyl一列取log值。

#修改数据
np.where(mtcars.mpg >20,True,False)
#新生成一列Logic
mtcars['Logic']=np.where(mtcars.mpg > 20,True,False)
#对cyl一列取log值
[np.log(x) for x in mtcars['cyl']]
mtcars.cyl[0]

转置

转置就是将表格的行列进行颠倒,在Excel中需要选择项粘贴实现。在python中,直接使用T属性即可,非常方便。

#使用obj.T可以对数据进行转置
mtcars=mtcars.T
mtcars

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多