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