python - 将数据框列中的元组列表拆分为数据框的列

标签 python pandas dataframe

我有一个数据框,其中一列包含元组列表。我需要将列表元组拆分为相应的列。我的数据框 df 如下所示:-

          A                                        B
[('Apple',50),('Orange',30),('banana',10)]        Winter   
[('Orange',69),('WaterMelon',50)]                 Summer 

预期的输出应该是:

    Fruit         rate             B
  Apple           50              winter   
  Orange          30              winter   
  banana          10              winter   
  Orange          69              summer   
  WaterMelon      50              summer 

最佳答案

您可以使用 DataFrame构造函数 numpy.repeatnumpy.concatenate :

df1 = pd.DataFrame(np.concatenate(df.A), columns=['Fruit','rate']).reset_index(drop=True)
df1['B'] = np.repeat(df.B.values, df['A'].str.len())
print (df1)
        Fruit rate       B
0       Apple   50  Winter
1      Orange   30  Winter
2      banana   10  Winter
3      Orange   69  Summer
4  WaterMelon   50  Summer

另一种使用 chain.from_iterable 的解决方案:

from  itertools import chain

df1 = pd.DataFrame(list(chain.from_iterable(df.A)), columns=['Fruit','rate'])
        .reset_index(drop=True)
df1['B'] = np.repeat(df.B.values, df['A'].str.len())
print (df1)
        Fruit  rate       B
0       Apple    50  Winter
1      Orange    30  Winter
2      banana    10  Winter
3      Orange    69  Summer
4  WaterMelon    50  Summer

关于python - 将数据框列中的元组列表拆分为数据框的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44758596/

相关文章:

python - 如何在 python 中隐藏 __method__?

python - 验证网络转储(PCAP 文件)上的 DoS/DDoS 攻击

python - 合并 Pandas Dataframe 中不同类型的列

python - 在 Pandas 中删除特定行

python - flask -mqtt : Mqtt Client disconnects immediately after connect

python - 如何在 pygame 中获取两个碰撞的 Sprite 对象?

python - 使用 python 绘制 pandas 列的交互式绘图

python - 使用pandas对分层数据[Parent->Child]树进行高效分组

python - 如何聚合然后扩展 pandas 数据框中的频率值

python - 在 pandas 数据框中添加错误日志消息行