我是python / pandas的新手,所以我在这里有些挣扎。 我有一个包含2016年至2020年空气质量数据的数据框。我想计算每个测量值的年变化率,以将它们与同一天和同一天的前一年的值进行比较。
这些是数据框的第一行。
Date Country City Specie count min max median variance
0 2020-02-23 CR San José pm25 20 13.0 53.0 25.0 1232.00
1 2020-04-04 CR San José pm25 23 17.0 57.0 38.0 1302.57
2 2020-04-24 CR San José pm25 23 30.0 80.0 59.0 1966.13
3 2020-01-14 CR San José pm25 24 13.0 34.0 21.0 379.55
4 2020-02-07 CR San José pm25 23 57.0 95.0 72.0 838.97
有人知道我该如何进行吗?
谢谢
答案 0 :(得分:0)
pandas.DataFrame.pct_change您可以使用'pandas:pct_change'方法轻松地检索它。
data='''
Date Country City Specie count min max median variance
0 2020-02-23 CR SanJos pm25 20 13.0 53.0 25.0 1232.00
1 2020-04-04 CR SanJos pm25 23 17.0 57.0 38.0 1302.57
2 2020-04-24 CR SanJos pm25 23 30.0 80.0 59.0 1966.13
3 2020-01-14 CR SanJos pm25 24 13.0 34.0 21.0 379.55
4 2020-02-07 CR SanJos pm25 23 57.0 95.0 72.0 838.97
5 2019-04-24 CR SanJos pm25 23 29.0 80.0 59.0 1966.13
6 2018-04-24 CR SanJos pm25 23 28.0 80.0 59.0 1966.13
7 2017-04-24 CR SanJos pm25 23 27.0 80.0 59.0 1966.13
8 2016-04-24 CR SanJos pm25 23 26.0 80.0 59.0 1966.13
'''
import pandas as pd
import datetime
import io
df = pd.read_csv(io.StringIO(data), sep=' ', parse_dates=[0], index_col=0)
df = pd.read_csv(io.StringIO(data), sep=' ', parse_dates=[0], index_col=0)
df1 = df[(df['Date'].dt.month == 4) & (df['Date'].dt.day == 24)]
df1
Date Country City Specie count min max median variance
2 2020-04-24 CR SanJos pm25 23 30.0 80.0 59.0 1966.13
5 2019-04-24 CR SanJos pm25 23 29.0 80.0 59.0 1966.13
6 2018-04-24 CR SanJos pm25 23 28.0 80.0 59.0 1966.13
7 2017-04-24 CR SanJos pm25 23 27.0 80.0 59.0 1966.13
8 2016-04-24 CR SanJos pm25 23 26.0 80.0 59.0 1966.13
df1['min'].pct_change()
2 NaN
5 -0.033333
6 -0.034483
7 -0.035714
8 -0.037037
Name: min, dtype: float64