【发布时间】:2018-11-01 16:24:14
【问题描述】:
我有以下数据框:
symbol PSAR
0 AAPL [nan,100,200]
1 PYPL [nan,300,400]
2 SPY [nan,500,600]
我正在尝试将 PSAR 列表值转换为如下所示的行:
symbol PSAR
AAPL nan
AAPL 100
AAPL 200
PYPL nan
PYPL 300
... ...
SPY 600
我一直在尝试通过遵循这篇文章中的答案来解决它(一个关键的区别是该帖子有一个列表列表)但无法到达那里。 How to convert column with list of values into rows in Pandas DataFrame.
df['PSAR'].stack().reset_index(level=1, drop=True).to_frame('PSAR')
.join(df[['symbol']], how='left')
【问题讨论】:
-
df[['symbol']].join(pd.DataFrame(df.PSAR.tolist())).melt(id_vars='symbol').drop('variable', 1) -
@user3483203 再次取消嵌套:-(,我将在 git 中打开一个主题,希望开发人员可以帮助我们构建那个甜蜜的功能。
-
@user3483203 不确定我做错了什么,但是当我运行你的代码时,我确实得到了原来的
df。 -
你记得把这个结果赋给一个新变量吗?
-
repl.it/repls/QuintessentialGivingWatchdog 在这里试试,应该可以了