gpt4 book ai didi

python - pandas findall() 可以返回 str 而不是 list 吗?

转载 作者:行者123 更新时间:2023-12-05 01:26:04 25 4
gpt4 key购买 nike

我有一个包含很多变量的 pandas 数据框:

df.columns
Out[0]:
Index(['COUNADU_SOIL_P_NUMBER_16_DA_B_VE_count_nr_lesion_PRATZE',
'COUNEGG_SOIL_P_NUMBER_50_DA_B_VT_count_nr_lesion_PRATZE',
'COUNJUV_SOIL_P_NUMBER_128_DA_B_V6_count_nr_lesion_PRATZE',
'COUNADU_SOIL_P_SAUDPC_150_DA_B_V6_lesion_saudpc_PRATZE',
'CONTRO_SOIL_P_pUNCK_150_DA_B_V6_lesion_p_control_PRATZE',
'COUNJUV_SOIL_P_p_0_100_16_DA_B_V6_lesion_incidence_PRATZE',
'COUNADU_SOIL_P_p_0_100_50_DA_B_VT_lesion_incidence_PRATZE',
'COUNEGG_SOIL_P_p_0_100_128_DA_B_VT_lesion_incidence_PRATZE',
'COUNEGG_SOIL_P_NUMBER_50_DA_B_V6_count_nr_spiral_HELYSP',
'COUNJUV_SOIL_P_NUMBER_128_DA_B_V10_count_nr_spiral_HELYSP', # and so on

我只想保留数字后跟 DA,所以第一列是 16_DA。我一直在使用 pandas 函数 findall():

df.columns.str.findall(r'[0-9]*\_DA')
Out[595]:
Index([ ['16_DA'], ['50_DA'], ['128_DA'], ['150_DA'], ['150_DA'],
['16_DA'], ['50_DA'], ['128_DA'], ['50_DA'], ['128_DA'], ['150_DA'],
['150_DA'], ['50_DA'], ['128_DA'],

但这会返回一个我想避免的列表,所以我最终得到一个如下所示的列索引:

df.columns
Out[595]:
Index('16_DA', '50_DA', '128_DA', '150_DA', '150_DA',
'16_DA', '50_DA', '128_DA', '50_DA', '128_DA', '150_DA',

有没有更流畅的方法来做到这一点?

最佳答案

您可以使用 .str.join(", ") 用逗号和空格连接所有找到的匹配项:

df.columns.str.findall(r'\d+_DA').str.join(", ")

或者,只需使用 str.extract 获取第一个匹配项:

df.columns.str.extract(r'(\d+_DA)', expand=False)

关于python - pandas findall() 可以返回 str 而不是 list 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70449278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com