Python 数据帧字典中的最大和最小日期
在每个数据帧都有一个日期时间索引的数据帧字典中查找最大和最小日期的最适合的方法是什么?例如:Python 数据帧字典中的最大和最小日期,python,pandas,dictionary,Python,Pandas,Dictionary,在每个数据帧都有一个日期时间索引的数据帧字典中查找最大和最小日期的最适合的方法是什么?例如: import pandas as pd import datetime df1 = pd.DataFrame(index = [datetime.datetime(2016, 7, 2, 0, 0), datetime.datetime(2016, 8, 6, 0, 0), datetime.datetime(2016,
import pandas as pd
import datetime
df1 = pd.DataFrame(index = [datetime.datetime(2016, 7, 2, 0, 0),
datetime.datetime(2016, 8, 6, 0, 0),
datetime.datetime(2016, 9, 13, 0, 0),
datetime.datetime(2016, 10, 26, 0, 0),
datetime.datetime(2016, 11, 2, 0, 0)],
data = {'bee' : [5, 3, 1, 0, 2],
'an' : [2,3,2,2,7]})
df2 = pd.DataFrame(index = [datetime.datetime(2015, 7, 2, 0, 0),
datetime.datetime(2015, 8, 6, 0, 0),
datetime.datetime(2015, 9, 13, 0, 0),
datetime.datetime(2015, 10, 26, 0, 0),
datetime.datetime(2015, 11, 2, 0, 0)],
data = {'bee' : [15, 2, 5, 0, 2],
'an' : [1,1,2,7,7]})
df_dict = {'df1':df1, 'df2':df2}
df_dict['df1']
输出:
index an bee
2016-07-02 2 5
2016-08-06 3 3
2016-09-13 2 1
2016-10-26 2 0
2016-11-02 7 2
及
输出
index an bee
2015-07-02 1 15
2015-08-06 1 2
2015-09-13 2 5
2015-10-26 7 0
2015-11-02 7 2
因此,我想找到
df_dict
的最大日期,应该是2016-11-02,以及df_dict
的最小日期,是2015-07-02。获取每个max
的max
,以及每个min
的min
max(max(v.index) for k,v in df_dict.items())
min(min(v.index) for k,v in df_dict.items())
2016-11-02 00:00:00
2015-07-02 00:00:00
添加@Wen建议,如果您不同时使用
k
和v
,您可以这样做
max(max(v.index) for _,v in df_dict.items())
甚至
max(max(df_dict[k].index) for k in df_dict.keys())
使用
pd.concat
pd.concat(df_dict).index.get_level_values(1).max()
Out[159]: Timestamp('2016-11-02 00:00:00')
pd.concat(df_dict).index.get_level_values(1).min()
Out[160]: Timestamp('2015-07-02 00:00:00')
这很有效,谢谢!我是python新手,你能帮我理解为什么它需要两个参数,k和v或者u和v吗?我在哪里可以找到更多关于你使用的策略的信息,我应该用谷歌搜索哪些关键术语?啊,k代表“key”,v代表在字典中循环的“value”。
pd.concat(df_dict).index.get_level_values(1).max()
Out[159]: Timestamp('2016-11-02 00:00:00')
pd.concat(df_dict).index.get_level_values(1).min()
Out[160]: Timestamp('2015-07-02 00:00:00')