我有很多串列需要合并到一個 DataFrame 中,每個串列都是一行。這些串列的長度各不相同。列名只是索引號,但我不知道如何根據需要動態生成它們。
l1 = [1,2,3]
l2 = [10,22,13,4]
l3 = [2]
df = pd.DataFrame()
df.loc[len(df)] = pd.DataFrame(l1, columns=list(range(len(l1))))
我收到此錯誤:
ValueError: Shape of passed values is (3, 1), indices imply (3, 3)
uj5u.com熱心網友回復:
只需將串列直接傳遞給DataFrame建構式:
l1 = [1,2,3]
l2 = [10,22,13,4]
l3 = [2]
df = pd.DataFrame([l1, l2, l3])
輸出:
>>> df
0 1 2 3
0 1 2.0 3.0 NaN
1 10 22.0 13.0 4.0
2 2 NaN NaN NaN
如果您需要一一附加行,您可以DataFrame.append:
df = pd.DataFrame()
for lst in [l1, l2, l3]:
df = df.append([lst], ignore_index=True)
輸出:
>>> df
0 1 2 3
0 1 2.0 3.0 NaN
1 10 22.0 13.0 4.0
2 2 NaN NaN NaN
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/366347.html
