[英]Python/Pandas: How do I replace specific values of a Pandas Data Frame based on individual id?
[英]how to replace values of an individual row and specific columns in pandas data frame
我有一个包含 902 列的数据框。 我想用存储在列表中的值替换第 0 行从第 214 列到第 902 列的所有值。 例如:
我有一个这样的列表:
list_a=['item0','item1','item2', 'item3'....'item 688']
我有一个这样的数据框:
item0 item1 item2 item3 ...item688
0 x. y. z. w. i
1 x. y. z. w. i
2 x. y. z. w. i
3 x. y. z. w. i
4 x. y. z. w. i
我想要的输出是:
item0 item1 item2 item3 ...item688
0 item0 item1 item2 item3 ...item688
1 x. y. z. w. i
2 x. y. z. w. i
3 x. y. z. w. i
4 x. y. z. w. i
注意:列表中存储的项目也是214到902的数据框列的名称
我试过了,但这不起作用:
df.iloc[0,214:902] = list_a
我怎样才能实现这个目标? 我感谢任何帮助!
好的,这比您的解决方案适用于这个简单的测试非常奇怪:
import pandas as pd
df = pd.DataFrame({
'colA':[True, False, False],
'colB': [1, 2, 3],
'colc':[True, False, False],
'colD': [1, 2, 3]
})
df.iloc[0, 1:3] = ['test 1', 'test 2']
生成的数据框从:
colA colB colc colD
0 True 1 True 1
1 False 2 False 2
2 False 3 False 3
至:
colA colB colc colD
0 True test 1 test 2 1
1 False 2 False 2
2 False 3 False 3
如果我没记错的话,那会解决你的问题吗? 您能否再次检查或验证您的结果?
您的 iloc 命令可能会出现问题,因为如果您还想更改第 902 列,则必须说df.iloc[0, 212:903]
。 您可以使用len(df.iloc[0, 1:3])
和len(list_a)
进行检查,以验证它们是否具有相同的长度。
我的解决方案有效:
df.iloc[0,214:902]= list_a
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.