修改某些 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.
我将 .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.