擅长:python、mysql、java
<pre><code># Set comprehension to get each group.
col_groups = {col[:3] for col in df}
# Dictionary comprehension to get the related columns for each group.
col_groups = {group: [c for c in df if c.startswith(group)]
for group in col_groups}
# >>> col_groups
# {'bbb': ['bbb1', 'bbb2', 'bbb3', 'bbb4'],
# 'ggg': ['ggg1', 'ggg6', 'ggg8'],
# 'aaa': ['aaa1', 'aaa2', 'aaa3', 'aaa4'],
# 'fff': ['fff9'],
# 'ccc': ['ccc1', 'ccc2'],
# 'ddd': ['ddd1']}
# Set the column values to `X` where all the values for each column in the group equals `-`.
for cols in col_groups.values():
if df[cols].eq('-').all().all():
df.loc[:, cols] = 'X'
>>> df
aaa1 aaa2 aaa3 aaa4 bbb1 bbb2 bbb3 bbb4 ccc1 ccc2 ddd1 ggg1 ggg6 ggg8 fff9
0 X X X X 1 x a - c - a 3 - - X
1 X X X X s z 1 a 2 - - - - h X
2 X X X X - x i - c - a 3 - - X
3 X X X X - - - - - f - 2 - 2 X
col_groups
</code></pre>