python - 如何对分组数据集执行操作并替换原始df中的相应值?
问题描述
对于给定的数据帧,我需要对数据进行分组(通过 groupby)并对分组数据执行操作(例如:grouped_data - 100)。在此之后,我需要用我刚刚计算的新值替换数据框中的旧值。
我尝试将获得的值分配给分组数据框,但它似乎不起作用。
分组数据框
altitude_feet Column_irrelevant_A Column_irrelevant_B
1889.155095 NaN NaN
1889.155095 NaN NaN
1889.155095 NaN NaN
1889.155095 NaN NaN
1889.155095 NaN NaN
1889.155095 NaN NaN
new_values= (df.groupby('columnA').get_group(101)['altitude_feet'])-100
df.groupby('coulmnA').get_group(101)['altitude_feet'] = new_values
我希望从上面减去 100 英尺,并将其作为新的高度英尺存储在初始数据帧中,然后再进行分组
我预计海拔高度约为 1789
我也考虑过避免分组,而是简单地找到索引
data[data['columnA']==101].assign(...)
任何建议,将不胜感激。
解决方案
只需定义一个函数并使用 apply()。我使用了 seaborn 的示例数据集:
import pandas as pd
import numpy as np
import seaborn as sns
df=sns.load_dataset('iris')
def f(grp):
dfx=grp.copy()
dfx['new_sepal_length']=dfx.sepal_length-100
return dfx
df_new=df.groupby('species').apply(f).reset_index(drop=True)
我创建了新的数据框 df_new 而不是 df,因此您可以将 df 与 df_new 进行比较。
推荐阅读
- python - 您可以根据标记的数据框列创建标记字段吗?
- r - R Quasiquotation & tidyeval 用于 R 中自己函数中的动态变量引用
- task - 历史数据加载的雪花任务,时间限制
- ibm-data-replication - IBM CDC for zOS VSAM - 如何使用 SET CONFIG 命令更改参数?
- android - 我的偏好片段顶部有一个差距,不知道是什么原因造成的
- node.js - Node.js 每 10 秒 10000 个并发 HTTP 请求
- python - Django Rest Framework 中没有视图或模型的简单 Web API
- powershell - Powershell 创建文件夹并分配安全用户
- html - 响应式 HTML 菜单 - 居中问题
- r - 替换 R 数据框中的无限值 [为什么 `is.infinite()` 的行为不像 `is.na()`]