首页 > 解决方案 > 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)

但输出只是重复的日期。

关于如何解决这个问题的任何想法?

标签: pythonpandas

解决方案


你可以试试这样的 -

df['new_date'] = df.groupby(['meter']).cumcount()

推荐阅读