如何使用python在pandas dataframe中查找和总结特定字符串?

rnmwe5a2  于 2023-04-28  发布在  Python
关注(0)|答案(1)|浏览(114)

我有一个大的dataframe,如下所示:
| 微孔ID|1|二|三|……|五十|
| --------------|--------------|--------------|--------------|--------------|--------------|
| 一百|1至2年级|4至5个蓝绿色|5 - 7红色||NaN|
| 一百零一|1至3蓝色|3至6年级|南||NaN|
我想做的是在dataframe的末尾添加两列,第一列包含所有包含字符串Gra的记录,第二列包含最后一条记录。所以Well 101会得到一个新的列Gra,它包含[3 to 6 Gra]和一个新的列Last Record,它包含[3 to 6 Gra]。
我试过使用:

for key, value in df_gravel.iteritems():
if value.astype(str).str.contains(search_word, case=False).any():
    print(value)

但我只看了整个专栏。我不知道接下来该怎么办。
之后的预期表为:

wkyowqbh

wkyowqbh1#

首先堆叠感兴趣的列,然后过滤包含Gra的行,然后过滤包含groupby的行,并聚合到list

s = df.iloc[:, 1:].stack()

df['Gra']  = s[s.str.contains('Gra')].groupby(level=0).agg(list)
df['Last'] = s.groupby(level=0).agg('last')
Well ID           1               2           3   4   5                           Gra        Last
0      100  1 to 2 Gra  4 to 5 Blu Gra  5 to 7 Red NaN NaN  [1 to 2 Gra, 4 to 5 Blu Gra]  5 to 7 Red
1      101  1 to 3 Blu      3 to 6 Gra         NaN NaN NaN                  [3 to 6 Gra]  3 to 6 Gra

相关问题