【问题标题】:Convert pandas column with single list of values into rows将具有单个值列表的 pandas 列转换为行
【发布时间】: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 在这里试试,应该可以了

标签: python pandas numpy


【解决方案1】:

不是一个光滑的,但它可以完成工作:

list_of_lists = []
df_as_dict = dict(df.values)
for key,values in df_as_dict.items():
    list_of_lists+=[[key,value] for value in values]
pd.DataFrame(list_of_lists)

返回:

    0      1
0   AAPL    NaN
1   AAPL    100.0
2   AAPL    200.0
3   PYPL    NaN
4   PYPL    300.0
5   PYPL    400.0
6   SPY     NaN
7   SPY    500.0
8   SPY    600.0

【讨论】:

    【解决方案2】:

    熊猫 >= 0.25:

    df1 = pd.DataFrame({'symbol':['AAPL', 'PYPL', 'SPY'],
                   'PSAR':[[None,100,200], [None,300,400], [None,500,600]]})
    print(df1)
    

    symbol  PSAR
    0   AAPL    [None, 100, 200]
    1   PYPL    [None, 300, 400]
    2   SPY [None, 500, 600]
    

    df1.explode('PSAR')
    

        symbol  PSAR
    0   AAPL    None
    0   AAPL    100
    0   AAPL    200
    1   PYPL    None
    1   PYPL    300
    1   PYPL    400
    2   SPY     None
    2   SPY     500
    2   SPY     600
    

    【讨论】:

      猜你喜欢
      • 2017-02-18
      • 2019-11-28
      • 2018-12-19
      • 2017-07-18
      • 2019-01-14
      • 2021-05-26
      • 2021-07-01
      • 1970-01-01
      • 2019-10-08
      相关资源
      最近更新 更多