我有一个具有日期时间索引的dataframe。我想添加一个列,用于保存当天的行数。
dff = pd.DataFrame(['red','red','blue'],
columns = ['colors'],
index = [pd.Timestamp('2019-09-19 14:03:20'),pd.Timestamp('2019-09-19 17:03:20'),pd.Timestamp('2019-09-20 14:03:20')])
colors
2019-09-19 14:03:20 red
2019-09-19 17:03:20 red
2019-09-20 14:03:20 blue因此,发生在2019-09-19的行的“count”列应该是2,最后一行的count列应该是1。
发布于 2019-10-17 04:44:26
这将临时创建一个仅包含日期的列,然后对所述列进行计数,并将其放入实际数据框中名为counts的新列中。
dff["counts"] = dff.assign(date_col = lambda x: x.index.date).groupby(['date_col']).transform('count')下面是要粘贴到IDE中并进行测试的全部内容:
import pandas as pd
dff = pd.DataFrame(['red','red','blue'],
columns = ['colors'],
index = [pd.Timestamp('2019-09-19 14:03:20'),pd.Timestamp('2019-09-19 17:03:20'),pd.Timestamp('2019-09-20 14:03:20')])
dff["counts"] = dff.assign(date_col = lambda x: x.index.date).groupby(['date_col']).transform('count')
print(dff)结果是:
colors counts
2019-09-19 14:03:20 red 2
2019-09-19 17:03:20 red 2
2019-09-20 14:03:20 blue 1https://stackoverflow.com/questions/58420967
复制相似问题