您如何使用数据框获得里程总和?

时间:2019-07-15 18:45:05

标签: python dataframe

index   date           miles
0   7/8/2015 14:00:00   10
1   7/8/2015 15:00:01   2
2   7/8/2015 16:00:01   5
3   7/9/2015 09:00:02   12
4   7/10/2015 12:00:00  4
5   7/11/2015 11:00:00  25
6   7/12/2015 04:34:33  10
7   7/12/2015 05:35:35  22
8   7/12/2015 23:11:11  14
9   7/13/2015 01:00:23  10
10  7/13/2015 03:00:03  2

我要将此表放在后面;

7/8/2015    17
7/9/2015    12
7/10/2015   4
7/11/2015   25
7/12/2015   46
7/13/2015   12

我如何在python中制作类似的东西?按日期分组以获取每天的里程数

3 个答案:

答案 0 :(得分:0)

@Valentino提到:

data = {
    'date': ['7/8/2015 14:00:00', '7/8/2015 14:00:00', '7/8/2015 14:00:00', '7/9/2015 14:00:00'],
    'miles': [10, 2, 5, 12]
}

df = pandas.DataFrame(data)

df['date'] = pandas.to_datetime(df.date)

df['date'] = df['date'].dt.strftime('%m/%d/%Y')

print(df)

Out:
date    miles
0   7/8/2015    10
1   7/8/2015    2
2   7/8/2015    5
3   7/9/2015    12
print(df.groupby('date').sum())

Out:
date    miles   
7/8/2015    17
7/9/2015    12

答案 1 :(得分:0)

如果您询问在一行中添加同一天的里程的解决方案,一种方法是使用(for循环)遍历所有日期,然后将等于或基本相同的所有日期添加到变量,然后打印每一行

答案 2 :(得分:0)

使用resample

df.set_index('date', inplace=True)
ddf = df.resample('1D').sum()

resample需要一个日期时间索引,因此您需要先将索引设置为'date'

如果您输入的示例是df,则ddf将显示为:

            miles
date             
2015-07-08     17
2015-07-09     12
2015-07-10      4
2015-07-11     25
2015-07-12     46
2015-07-13     12