聚合具有相同日期的列(总和)
Aggregate columns with same date (sum)
所以,我需要聚合日期相同的行。
我的代码,截至目前,return如下:
date value source
0 2018-04-08 15:52:26.110 1 ANAPRO
1 2018-04-22 12:14:38.807 1 ANAPRO
2 2018-04-22 12:34:18.403 1 ANAPRO
3 2018-04-22 12:40:35.877 1 ANAPRO
4 2018-04-22 12:53:57.897 1 ANAPRO
5 2018-04-22 13:02:45.180 1 ANAPRO
6 2018-05-04 17:41:15.840 1 ANAPRO
7 2018-04-22 15:03:54.353 1 ANAPRO
8 2018-04-22 15:24:27.030 1 ANAPRO
9 2018-04-22 15:27:56.813 1 ANAPRO
当 HH:MM:SS.ms 与日期一起显示时,我认为我无法聚合列(我只需要日期)
我已经试过了:
df['date'] = pandas.to_datetime(df['date'], format='%b %d %Y.%f').astype(str)
但是没有用,我还是一样return。
密码是:
读取我的 excel 文件(用户输入)。
df = pandas.read_excel(var + '.xlsx')
选择我需要的列,并创建一个新的 .xlsx 来包含它。
df = df.iloc[:, 36].to_excel(var + '_.xlsx', index=False)
打开新的 .xlsx 文件。
df = pandas.read_excel(var + '_.xlsx')
重命名列
df = df.rename(columns={'Prospect Dt. Cadastro': 'date'})
添加我需要的其他列。
df['value'] = 1
df['source'] = 'ANAPRO'
尝试格式化日期。
df['date'] = pandas.to_datetime(df['date'], format='%b %d` %Y.%f').astype(str)
创建包含所有格式化数据的最终 xlsx。
df = df.to_excel('payload.xlsx')
读取最终的 xlsx。
df = pandas.read_excel('payload.xlsx', names=['date', 'value', 'source'])
打印前 10 行。
print(df.head(10))
我是 python 的新手,很抱歉,如果我做的事情很尴尬,谢谢!
IIUC,你可能想要 pandas.Series.dt.date
:
df['date'] = pandas.to_datetime(df['date']).dt.date
>>> df
date value source
0 2018-04-08 1 ANAPRO
1 2018-04-22 1 ANAPRO
2 2018-04-22 1 ANAPRO
3 2018-04-22 1 ANAPRO
4 2018-04-22 1 ANAPRO
5 2018-04-22 1 ANAPRO
6 2018-05-04 1 ANAPRO
7 2018-04-22 1 ANAPRO
8 2018-04-22 1 ANAPRO
9 2018-04-22 1 ANAPRO
或者,如果您的目标是使用 groupby
进行汇总,您可以保留原始日期列中的所有信息,并仅按日期分组:
df['date'] = pandas.to_datetime(df['date'])
df.groupby(df['date'].dt.date)
# for example, to get the sum each day:
# df.groupby(df['date'].dt.date).sum()
# value
# date
# 2018-04-08 1
# 2018-04-22 8
# 2018-05-04 1
或者,使用 pd.Grouper
:
df['date'] = pandas.to_datetime(df['date'])
df.groupby(pd.Grouper(key='date', freq='D'))
所以,我需要聚合日期相同的行。
我的代码,截至目前,return如下:
date value source
0 2018-04-08 15:52:26.110 1 ANAPRO
1 2018-04-22 12:14:38.807 1 ANAPRO
2 2018-04-22 12:34:18.403 1 ANAPRO
3 2018-04-22 12:40:35.877 1 ANAPRO
4 2018-04-22 12:53:57.897 1 ANAPRO
5 2018-04-22 13:02:45.180 1 ANAPRO
6 2018-05-04 17:41:15.840 1 ANAPRO
7 2018-04-22 15:03:54.353 1 ANAPRO
8 2018-04-22 15:24:27.030 1 ANAPRO
9 2018-04-22 15:27:56.813 1 ANAPRO
当 HH:MM:SS.ms 与日期一起显示时,我认为我无法聚合列(我只需要日期)
我已经试过了:
df['date'] = pandas.to_datetime(df['date'], format='%b %d %Y.%f').astype(str)
但是没有用,我还是一样return。
密码是:
读取我的 excel 文件(用户输入)。
df = pandas.read_excel(var + '.xlsx')
选择我需要的列,并创建一个新的 .xlsx 来包含它。
df = df.iloc[:, 36].to_excel(var + '_.xlsx', index=False)
打开新的 .xlsx 文件。
df = pandas.read_excel(var + '_.xlsx')
重命名列
df = df.rename(columns={'Prospect Dt. Cadastro': 'date'})
添加我需要的其他列。
df['value'] = 1
df['source'] = 'ANAPRO'
尝试格式化日期。
df['date'] = pandas.to_datetime(df['date'], format='%b %d` %Y.%f').astype(str)
创建包含所有格式化数据的最终 xlsx。
df = df.to_excel('payload.xlsx')
读取最终的 xlsx。
df = pandas.read_excel('payload.xlsx', names=['date', 'value', 'source'])
打印前 10 行。
print(df.head(10))
我是 python 的新手,很抱歉,如果我做的事情很尴尬,谢谢!
IIUC,你可能想要 pandas.Series.dt.date
:
df['date'] = pandas.to_datetime(df['date']).dt.date
>>> df
date value source
0 2018-04-08 1 ANAPRO
1 2018-04-22 1 ANAPRO
2 2018-04-22 1 ANAPRO
3 2018-04-22 1 ANAPRO
4 2018-04-22 1 ANAPRO
5 2018-04-22 1 ANAPRO
6 2018-05-04 1 ANAPRO
7 2018-04-22 1 ANAPRO
8 2018-04-22 1 ANAPRO
9 2018-04-22 1 ANAPRO
或者,如果您的目标是使用 groupby
进行汇总,您可以保留原始日期列中的所有信息,并仅按日期分组:
df['date'] = pandas.to_datetime(df['date'])
df.groupby(df['date'].dt.date)
# for example, to get the sum each day:
# df.groupby(df['date'].dt.date).sum()
# value
# date
# 2018-04-08 1
# 2018-04-22 8
# 2018-05-04 1
或者,使用 pd.Grouper
:
df['date'] = pandas.to_datetime(df['date'])
df.groupby(pd.Grouper(key='date', freq='D'))