【发布时间】:2020-12-18 04:51:57
【问题描述】:
困境:
我有一个数据集 df,我想在其中对特定列中的复杂格式进行分离和分组,并显示百分比。我通过关注前三个“单词”(例如)Hello-HEL-HE- 和后跟字母 T -12T
的值There are 3 unique counts of Hello-HEL-HE-A6123-123A-12T
2 unique counts of Hello-HEL-HE-A6123-123A-50T
1 unique count(s) of Happy-HAP-HA-R650-570A-90T
数据:
Type Value
Hello-HEL-HE-A6123-123A-12T_TYPE-v.A 1,111,111
Hello-HEL-HE-A6123-123A-12T_TYPE-v.B 111,111
Hello-HEL-HE-A6123-123A-12T_TYPE-v.E 2,345,667
Hello-HEL-HE-A6123-123A-50T_TYPE-v.C 222,334
Hello-HEL-HE-A6123-123A-50T_TYPE-v.A 89
Happy-HAP-HA-R650-570A-90T_version-v.A 6
期望的输出:
Type Percent
Hello-HEL-HE-12T 50%
Hello-HEL-HE-50T 33%
Happy-HAP-HA-90T 16.6%
正在做:
(建议在'_'上分割,然后在'-'上分割)
df.str.split(pat="_") #separating by hyphen
(df['Type'].value_counts(normalize=True) * 100).to_frame() #groupby
但是,我不确定如何通过 Hello-HEL-HE 和 -12T 来区分每种类型
欢迎提出任何建议
【问题讨论】:
-
您如何定义
-12T和-90T是您感兴趣的部分?是因为它们是两位数,后跟'T',还是因为它们是'_'之前的最后一位? -
由于放置 - 我看到它们位于由连字符分隔的“第 6”位
-
第 5 位的部分将是
'12T_TYPE'... -
df['Type'].value_counts(normalize=True) * 100).to_frame()不正确,缺少(。在_上拆分然后在-上拆分然后将前三个和最后一个字符串组合在一起以创建一个新索引怎么样? -
好的,谢谢@PaulBrennan 我会试试这个