【问题标题】:Column with list values, if list has more than 1 element, decode both values and include in a list in the same row in new column具有列表值的列,如果列表具有超过 1 个元素,则解码这两个值并包含在新列的同一行中的列表中
【发布时间】:2022-01-18 04:43:22
【问题描述】:

我有两列 cat_1 和 cat_2,其中的值有乱码。这是因为我将引用一个 python 库来从那些乱码值中获取信息。

如果列表在一行中有超过 1 个元素,无论是在 cat_1 还是 cat_2,我想继续填充新列 results_1 或 results_2 的行,其值用逗号分隔。示例如下。

如何从 cat_1 和 cat_2... 到 results_1 和 results_2?

【问题讨论】:

    标签: python pandas string list dataframe


    【解决方案1】:

    您需要某种映射器词典来告诉我们哪个乱码单词是哪个英语单词。比如:

    mapper = {'klys': 'apple', 'chrs': 'orange', 'pqor': 'bag'}
    

    有了这样的映射器,您可以:

    df[['results_1','results_2']] = df[['cat_1','cat_2']].stack().str.split(', ').explode().map(mapper).fillna('').groupby(level=[0,1]).apply(lambda x: list(x) if len(x)>1 else (x.values[0] if len(x)==1 else '')).unstack()
    

    【讨论】:

      猜你喜欢
      • 2020-09-07
      • 2019-12-21
      • 1970-01-01
      • 2022-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-04
      • 2019-12-13
      相关资源
      最近更新 更多