gpt4 book ai didi

Python/Pandas 数据框 - 返回列名称

转载 作者:行者123 更新时间:2023-12-01 03:51:34 26 4
gpt4 key购买 nike

有没有办法将列的名称/标题返回到 pandas 数据框中的字符串中?我想处理具有相同前缀的一行数据。数据帧标题如下所示:

col_00 | col_01 | ... | col_51 | bc_00 | cd_00 | cd_01 | ... | cd_90

我想对每一行应用一个函数,但仅限于col_00col_51并发送至cd_00cd_90分别地。为此,我想将列名称收集到一个列表中,fe。 to_work_with将是以前缀“col”开头的列的列表,将该函数应用于 df[to_work_with] 。然后我会改变 to_work_with并且它将包含以“cd”前缀等开头的列列表。但我不知道如何迭代列名。

所以基本上,我正在寻找的是这个函数:

to_work_with = column names in the df that start with "thisstring"

我怎样才能做到这一点?谢谢!

最佳答案

您可以使用boolean indexingstr.startswith :

cols = df.columns[df.columns.str.startswith('cd')]
print (cols)
Index(['cd_00', 'cd_01', 'cd_02', 'cd_90'], dtype='object')

示例:

print (df)
col_00 col_01 col_02 col_51 bc_00 cd_00 cd_01 cd_02 cd_90
0 1 2 3 4 5 6 7 8 9

cols = df.columns[df.columns.str.startswith('cd')]
print (cols)
Index(['cd_00', 'cd_01', 'cd_02', 'cd_90'], dtype='object')

#if want apply some function for filtered columns only
def f(x):
return x + 1

df[cols] = df[cols].apply(f)
print (df)
col_00 col_01 col_02 col_51 bc_00 cd_00 cd_01 cd_02 cd_90
0 1 2 3 4 5 7 8 9 10

另一个具有列表理解的解决方案:

cols = [col for col in df.columns if col.startswith("cd")]
print (cols)
['cd_00', 'cd_01', 'cd_02', 'cd_90']

关于Python/Pandas 数据框 - 返回列名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38169342/

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