python - Python Pandas:如何更新 groupby 中其他列的值?
问题描述
我有一个带有时间序列的数据框。
meter date value
0 1002 19501 0.362
1 1002 19502 0.064
2 1002 19503 0.119
3 1002 19504 0.023
4 1002 19505 0.140
现在我需要为米中的每个唯一值将日期更改为数字顺序(1、2、3 等,直到 336)。每个唯一的仪表值有 336 行,所以这应该不会太难,但我坚持在这里得到正确的结果。
我尝试了以下方法:
def change_timestamp(df):
timestamp_uniform = [i for i in range(1,337)]
timestamp = pd.Series(data=timestamp_uniform)
df.date = timestamp.values
return df.date
by_meter = meters_weekly.groupby('meter')
by_meter.apply(change_timestamp)
但输出只是重复的日期。
关于如何解决这个问题的任何想法?
解决方案
你可以试试这样的 -
df['new_date'] = df.groupby(['meter']).cumcount()
推荐阅读
- matlab - MATLAB中的双精度和四精度
- python - 组合 re 标志 re.IGNORECASE、re.MULTILINE 和 re.DOTALL
- python - 张量流中的自定义渐变 - 无法理解这个例子
- reactjs - 如何让我的 React 应用程序在链接预览中正确发送页面标题?使用 NGINX 作为代理
- azure - Azure Durable Orchestrator + Sub orchestrator 任务永远无法解决
- apache-spark - Azure blob 存储的 Spark 流检查点问题:TaskCompletionListener 中的错误为 null
- javascript - JSX 道具不应使用箭头函数 eslint 警告
- python - 如何使用变量作为模块的参数?
- database - 建立分页时,如何知道是否有下一页?
- reactjs - React-Native 防止键盘在状态更新时关闭