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



我有一个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

最新更新