修改某些 pandas 数据框列,将更改应用于整个原始数据框

Modifying certain pandas dataframe colums, apply changes to entire original dataframe

我将 .csv 文件读入 pandas 数据框 delta_df = pd.read_csv('SAAF_121581_67_500_s.dat',index_col=False) - 我需要根据列的 header 对某些列应用以下操作:delta_df.iloc[0:,2:].select(lambda x: not re.search('rad', x), axis=1)/1000

基本上,我正在搜索 header 不包含字符串 "rad" 的每一列,并将其内容除以 1000。到目前为止一切顺利。

从这里我想将 delta_df.iloc[0:,2:].select(lambda x: not re.search('rad', x), axis=1)/1000 应用回原始数据框 - 更改包含 "rad" 的列,其余所有列保持不变。

我曾尝试使用 df.apply(),但我认为这可能适合 df.applymap() --> 不过我似乎无法让它工作。

如有任何建议或指点,我们将不胜感激。

您可以只存储列,然后在左右两侧使用:

cols = df.select(lambda x: not re.search('tick', x), axis=1).columns
df[cols] = df[cols] / 1000.