伙计们,
我有一个列定义的DataFrame和一个像这样的列表:
df = pd.DataFrame(columns=list('ABCDEF'))
[0.25, 1, [97, 99], array([18., 16., 17.]), array([ 31., 30., 29.]), array([ 0.])]
实际上,此列表中的每个元素都是我期望的DataFrame的一列,我想添加以下内容:
A B C D E F
0.25 1 [97,99] [18., 16., 17.] [ 31., 30., 29.] [ 0.]
然后我可以在while循环中插入列表,即在DataFrame中插入一行,例如在第二个循环中,我还有另一行:
[0.25,2,[132,134],array([17。]),array([29.,30.,31.]),array([15。,16。])]
A B C D E F
0.25 1 [97,99] [18., 16., 17.] [ 31., 30., 29.] [ 0.]
0.25 2 [132,134] [17.] [ 29., 30., 31.] [15., 16.]
但是当我创建DataFrame时,它总是将数组中的元素放入一列:
0 A B C D E F
0 0.25 NaN NaN NaN NaN NaN NaN
1 1 NaN NaN NaN NaN NaN NaN
2 [97.7123918594, 99.7123918594] NaN NaN NaN NaN NaN NaN
3 [17.0, 24.0, 18.0, 16.0, 17.0] NaN NaN NaN NaN NaN NaN
4 [31.0, 30.0, 29.0] NaN NaN NaN NaN NaN NaN
5 [0.0] NaN NaN NaN NaN NaN NaN
任何方法都能得到我的期望吗?非常感谢。
答案 0 :(得分:2)
您可以使用.loc
In [324]: df = pd.DataFrame(columns=list('ABCDEF'))
In [325]: l1 = [0.25, 1, [97, 99], array([18., 16., 17.]), array([ 31., 30., 29.]), array([ 0.])]
In [326]: df.loc[len(df.index)] = l1
In [327]: df
Out[327]:
A B C D E F
0 0.25 1 [97, 99] [18.0, 16.0, 17.0] [31.0, 30.0, 29.0] [0.0]
但是,如果您有预先列出的列表,则可以
pd.DataFrame([l1, l2, ..., ln], columns=list('abcdef'))