我一直在查看所有相关示例,但无法使其适应我的示例。
我有一个熊猫数据框
0 1 2 3 4
0 Date Time Col1 Col2 [Col3, Col4, Coln]
1 Date1 Time1 1.0 2.0 [3.0, 4.0, 5.0]
2 Date2 Time2 6.0 7.0 [8.0, 9.0, 10.0]
2 Date3 Time3 11.0 12.0 [13.0, 14.0, 15.0]
预期的输出应该是:
0 1 2 3 4 5 6
0 Date Time Col1 Col2 Col3, Col4, Coln
1 Date1 Time1 1.0 2.0 3.0 4.0 5.0
2 Date2 Time2 6.0 7.0 8.0 9.0 10.0
2 Date3 Time3 11.0 12.0 13.0 14.0 15.0
请注意以下几点: 列数及其名称都是动态的和随机的。并且每一行将具有相同数量的元素(即,将没有丢失的条目)。
答案 0 :(得分:0)
df[['Col3', 'Col4','Col5']] = pd.DataFrame(df.iloc[:,4].tolist(), index=df.index)
对于这种简单的情况,您可以这样做。但是,如果列表中有许多元素,则总体思路将是相似的。 (在这种情况下,您还将生成列名)
答案 1 :(得分:0)
如果您事先不知道列表的长度,但是知道存储列表的列名,则可以使用
df = pd.DataFrame( {'A': [[1,2,3],['a','b','c']], 'B': [10,20] })
print (df)
print (pd.concat([df[df.columns.drop('A')], df['A'].apply(pd.Series)], axis=1))
输出:
A B
0 [1, 2, 3] 10
1 [a, b, c] 20
B 0 1 2
0 10 1 2 3
1 20 a b c