pandas DataFrame 单个数据修改(cell)

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
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞