【发布时间】:2020-08-05 05:03:09
【问题描述】:
我需要从列表中填充数据框。
lst=[1,"name1",10,2,"name2",2,"name2",20,3]
df=pd.DataFrame(columns=['a','b','c'])
j=0
for i in range(len(list(df.columns))-1):
for t,v in enumerate(lst):
col_index=j%3
df.iloc[i,col_index]=lst[t]
j=j+1
上面的代码给了我一个错误。
我希望 df 关注
a b c
1 name1 10
2 name2 20
3 NaN NaN
我已经尝试过了,但它给了我以下错误 IndexError :单个位置索引器超出范围
【问题讨论】:
-
那么错误是什么?请分享。
-
我已经更新了错误..这是一个索引错误..它基本上不允许我从列表中分配一个值
-
错误是,当
df为空时,您正试图通过索引从中获取项目。这就像尝试foo[5]而foo是一个空列表。 -
你能解释一下
lst吗?比如它的模式是什么?不应该是lst=[1,"name1",10,2,"name2",20]吗? -
基本上 len(lst) 不一定能被 3 整除...所以它的计数可以不是 3 的倍数