【发布时间】:2016-11-20 14:14:27
【问题描述】:
我想这样做:
# input:
A B
0 [1, 2] 10
1 [5, 6] -20
# output:
A B
0 1 10
1 2 10
2 5 -20
3 6 -20
每一列A的值都是一个列表
df = pd.DataFrame({'A':[[1,2],[5,6]],'B':[10,-20]})
df = pd.DataFrame([[item]+list(df.loc[line,'B':]) for line in df.index for item in df.loc[line,'A']],
columns=df.columns)
上面的代码可以运行,但是速度很慢
有什么巧妙的方法吗?
谢谢
【问题讨论】:
-
最近的熊猫使用
DataFrame.explodedf = pd.DataFrame({'A':[[1,2],[5,6]],'B':[10,-20] }) df.explode('A')