python - 如何创建新的列名并从其他列的列表中填充行值

标签 python pandas list

我有一个数据集,其中包含两列中的值列表。我需要 A 列列表中的值成为新的列名,B 列列表中的值成为相应的行值。

我的数据集如下所示:

              A                       B  
----------------------------------------------------                  
0   [alpha, alpha2, alpha3]  [betha, betha2, betha3]     
1   [alpha, alpha2, alpha3]  [betha, betha2, betha3]
2   [alpha, alpha3]          [betha, betha3]    

我需要得到像这样的数据集:

      alpha    alpha2    alpha3
------------------------------- 
0     betha    betha2    betha3
1     betha    betha2    betha3
2     betha    None      betha3

感谢帮助,我的想法已经用完了。 提前致谢。

最佳答案

如果列表对的长度始终相同:explode(pandas 0.25+)+ pivot。对于不同的长度,您可以在爆炸 (groupby(level=0).cumcount()) 之后向索引添加一个 cumcount 级别,以便它们对齐,尽管您在这种情况下,您需要决定对齐意味着什么。

df1 = (pd.concat([df.explode(x)[x] for x in ['A', 'B']], 1)
         .pivot(columns='A', values='B')
         .rename_axis(None, axis=1))

   alpha  alpha2  alpha3
0  betha  betha2  betha3
1  betha  betha2  betha3
2  betha     NaN  betha3

关于python - 如何创建新的列名并从其他列的列表中填充行值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57965148/

相关文章:

python - Flask 使用 __bind_key__ 继承多个相同数据库中的表类

python - Elasticsearch-Python 2.7-为分析器配置索引

python - 修改 pandas 数据框列中的值,给定不同的列具有所需的值

java - JDialog 中的复选框列表

python - 如何从第 0 个元素开始向后重新排序 python 列表?

python - 创建小写单词(将大写字母转换为小写字母)的功能无法按预期工作

python - Django 模型继承 : ForeignKey on parent, 没有对子模型的 related_name 访问

python - 如何在 Pandas 中添加基于选定行过滤器的列?

python - Pandas 切片与 if 条件

java - 如何定位列表元素(Selenium)?