【问题标题】:How to convert selected column with index to a list of tuples in pandas如何将带有索引的选定列转换为熊猫中的元组列表
【发布时间】:2020-08-17 21:02:17
【问题描述】:

给定下面的数据框:

df = pd.DataFrame([{'Name': 'Chris', 'Item Purchased': 'Sponge', 'Cost': 22.50},
                   {'Name': 'Kevyn', 'Item Purchased': 'Kitty Litter', 'Cost': 2.50},
                   {'Name': 'Filip', 'Item Purchased': 'Spoon', 'Cost': 5.00}],
                  index=['Store 1', 'Store 1', 'Store 2'])

如何编写脚本以产生以下输出:

[('Store 1', 22.5), ('Store 1', 2.5), ('Store 2', 5.0)]

【问题讨论】:

  • 这能回答你的问题吗? Pandas convert dataframe to array of tuples。有几种解决方案也可以处理数据帧的子集。
  • 您想汇总每个商店的所有成本,还是只是转置数据框? (如果数据框有 2 行 store1,输出应该有 store1 2 次还是只有一次?我建议您更具体地说明您期望执行的转换,因为输出可以通过多种方式实现。跨度>

标签: python pandas


【解决方案1】:

我们可以zip

list(zip(df.index,df.Cost))
[('Store 1', 22.5), ('Store 1', 2.5), ('Store 2', 5.0)]

【讨论】:

    【解决方案2】:

    你也可以使用items:

    list(df['Cost'].items())
    #df['Cost'].to_dict().items()
    

    [('Store 1', 22.5), ('Store 1', 2.5), ('Store 2', 5.0)]
    

    【讨论】:

      【解决方案3】:

      你也可以使用itertuples,因为你有一个索引集。

      list(df[['Cost']].itertuples(name=None))
      [('Store 1', 22.5), ('Store 1', 2.5), ('Store 2', 5.0)]
      

      【讨论】:

        猜你喜欢
        • 2016-12-17
        • 2016-11-22
        • 2022-12-04
        • 2021-12-20
        • 2015-11-10
        • 2022-12-14
        • 1970-01-01
        • 2021-12-04
        相关资源
        最近更新 更多