[work] pandas DataFrame 修改单个数据

DataFrame每一行数据相当于一个Series,其index是DataFrame的columns是属性。

>>> import pandas as pd
>>> import numpy as np
>>> df = pd.DataFrame(np.arange(12).reshape(3,4), columns=[chr(i) for i in range(97,101)])
>>> df
    a   b   c   d
0   0   1   2   3
1   4   5   6   7
2   8   9   10  11

第一种方式

>>> df.iloc[1,3] = '老王'
>>> df
    a   b   c   d
0   0   1   2   3
1   4   5   6   老王
2   8   9   10  11

推荐这样修改,列顺序更改的话,代码维护小

>>> d_index = list(df.columns).index('d')
>>> d_index
3

>>> df.iloc[1,d_index] = '老李'
>>> df
    a   b   c   d
0   0   1   2   3
1   4   5   6   老李
2   8   9   10  11

第二种方式:使用新的Series,替换当前行

>>> df 
    a   b   c   d
0   0   1   2   3
1   4   5   6   7
2   8   9   10  11

>>> d = dict(df.iloc[1])
>>> d
{'a': 4, 'b': 5, 'c': 6, 'd': 7}

>>> d['d'] = '老王'
>>> df.iloc[1] = pd.Series(d)
>>> df
    a   b   c   d
0   0   1   2   3
1   4   5   6   老王
2   8   9   10  11



作者:领悟悟悟悟
链接:https://www.jianshu.com/p/a6139a1352d6
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

猜你喜欢

转载自blog.csdn.net/Scythe666/article/details/84742733
今日推荐