我已经初始化了一个空的 pandas 数据框,现在正在尝试填充该数据框,但我一直遇到相同的错误。这是我正在使用的(简化的)代码
import pandas as pd
cols = list("ABC")
df = pd.DataFrame(columns=cols)
# sett the values for the first two rows
df.loc[0:2,:] = [[1,2],[3,4],[5,6]]
运行上面的代码时,我收到以下错误:
ValueError: cannot copy sequence with size 3 to array axis with dimension 0
我不确定是什么原因造成的。我一次尝试使用一行进行相同的操作,并且它有效(df.loc[0,:] = [1,2,3]
)。我认为当我想处理多行时,这应该是逻辑扩展。但显然,我错了。执行此操作的正确方法是什么?我需要为多行和多列输入一次值。我可以使用循环来做到这一点,但这不是我想要的。
任何帮助都会很棒。谢谢
由于您有空数据帧中的列,因此在数据帧构造函数中使用它,即
import pandas as pd
cols = list("ABC")
df = pd.DataFrame(columns=cols)
df = pd.DataFrame(np.array([[1,2],[3,4],[5,6]]).T,columns=df.columns)
A B C
0 1 3 5
1 2 4 6
好吧,如果您想专门使用 loc,请先重新索引数据帧,然后分配,即
arr = np.array([[1,2],[3,4],[5,6]]).T
df = df.reindex(np.arange(arr.shape[0]))
df.loc[0:arr.shape[0],:] = arr
A B C
0 1 3 5
1 2 4 6
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)