[work] pandas DataFrame 修改单个数据

痛定思痛。 2022-04-12 10:45 370阅读 0赞

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

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

第一种方式

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

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

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

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

  1. >>> df
  2. a b c d
  3. 0 0 1 2 3
  4. 1 4 5 6 7
  5. 2 8 9 10 11
  6. >>> d = dict(df.iloc[1])
  7. >>> d
  8. {'a': 4, 'b': 5, 'c': 6, 'd': 7}
  9. >>> d['d'] = '老王'
  10. >>> df.iloc[1] = pd.Series(d)
  11. >>> df
  12. a b c d
  13. 0 0 1 2 3
  14. 1 4 5 6 老王
  15. 2 8 9 10 11

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

发表评论

表情:
评论列表 (有 0 条评论,370人围观)

还没有评论,来说两句吧...

相关阅读