如何添加第一个date
按id
类别分类的列?
就像是:
df = df.broadcast_assign(level="id", colname="Init", data=date_of(df.groupby("id").first()))`
import numpy as np
import pandas as pd
def time(t):
return pd.Timestamp("2019-01-01T12") + pd.to_timedelta(t, "d")
arrays = [
np.array([1, 1, 2, 2]),
np.array([time(0), time(1), time(396), time(365)]),
]
df = pd.DataFrame(np.round(np.random.rand(1,4).T, decimals=1), index=arrays, columns=["x"])
df.index.names = ["id", "time"]
退货
x
id time
1 2019-01-01 12:00:00 0.4
2019-01-02 12:00:00 0.6
2 2020-02-01 12:00:00 0.3
2020-01-01 12:00:00 0.9
x Init
id time
1 2019-01-01 12:00:00 0.4 2019-01-01
2019-01-02 12:00:00 0.6 2019-01-01
2 2020-02-01 12:00:00 0.3 2020-01-01
2020-01-01 12:00:00 0.9 2020-01-01
您可以重置time
在多指标,然后组它的水平id
和transform
使用min
:
df['Init'] = df.reset_index('time')['time'].dt.date\
.groupby('id').transform('min').tolist()
x Init
id time
1 2019-01-01 12:00:00 0.1 2019-01-01
2019-01-02 12:00:00 0.1 2019-01-01
2 2020-02-01 12:00:00 0.9 2020-01-01
2020-01-01 12:00:00 0.1 2020-01-01
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句