繁体   English   中英

如何替换熊猫数据框中单个行和特定列的值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM