【问题标题】:Python/Pandas merge and generate list of unique values from comma separated variable/column [duplicate]Python / Pandas合并并从逗号分隔的变量/列生成唯一值列表[重复]
【发布时间】:2020-06-16 06:16:09
【问题描述】:

我有一张如下所示的表格: TABLE

LOCATION   ANALYSIS TYPE
A          A,B,C,D
A          D,E,F
B          KA
B          A,B,C
B          C,D,E

我希望为每个位置生成一个单行库存,其中列出了使用pandas 可用的分析类型。因此,对于这一列列表,我想按位置合并并显示一个唯一值列表。

IE:
A         A,B,C,D,E,F
B         A,B,C,D,E,KA

DESIRED TABLE_OUT

抱歉,没有代码。我在 pandas 中尝试过各种分裂,但没有接近。

【问题讨论】:

  • 您能发布一些您在 pandas 中尝试过的拆分吗?
  • 在列表中的“,”上进行了拆分。它为每个项目创建了一个新列……与我想要完成的目标相去甚远。 :D
  • 你不应该用图片编辑你的问题。将表格保留为文本。
  • 当...“我在帮忙”
  • 文本回来了...我需要在这里整理一下如何格式化表格。这是我的第一篇文章...请不要恨我:D

标签: python pandas


【解决方案1】:

试试这个:

df1 = pd.DataFrame({'Location':['A']*2+['B']*3
                   ,'Analysis_Type':['A,B,C,D','D,E,F','KA','A,B,C','C,D,E']})
df1.set_index('Location')['Analysis_Type'].str.split(',')\
   .groupby(level=0)\
   .agg(lambda x: ','.join(sorted(list(set(x.sum())))))\
   .reset_index()

输出:

  Location Analysis_Type
0        A   A,B,C,D,E,F
1        B  A,B,C,D,E,KA

【讨论】:

  • df_newrng.set_index('UWI')['分析测试类型'].str.split(',')\ .groupby(level=0)\ .agg(lambda x: ',' .join(sorted(list(set(x.sum())))))\ .reset_index()
  • 我收到类型错误。很抱歉弄清楚如何换行:D
  • "\" 是一个续行符....
  • 谢谢,这正是我想要的……使用示例数据。对于现实世界的数据,我遇到了语法问题......但它会到达那里。 Hi-5 斯科特波士顿
猜你喜欢
  • 2021-06-01
  • 2020-06-01
  • 1970-01-01
  • 2017-05-07
  • 2011-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多