【发布时间】:2018-04-19 20:03:54
【问题描述】:
有一个由列表组成的DataFrame(或Series),如下所示:
df = pd.DataFrame([[[1,3], [2,3,4], [1,4,2,5]]], columns=['A', 'B', 'C']).T
print(df)
输出:
0
A [1, 3]
B [2, 3, 4]
C [1, 4, 2, 5]
我怎样才能把它变成
0
A 1
A 2
B 2
B 3
B 4
C 1
C 4
C 2
C 5
我尝试使用apply(),但效果不佳。我可以隐式转换吗?我还尝试将所有数字提取为 [('A', 1), ('A', 3), ..] 的元组 from_records(),但我也无法做到这一点。
我想我可以这样做:
pd.DataFrame.from_records(df[0].map(lambda x: [(0, v) for v in x]).sum())
但我不知道如何访问索引。注意(0, v) 实际上应该类似于(x.index, v)。
【问题讨论】:
标签: python list pandas dataframe flatten