【发布时间】:2022-01-12 11:54:45
【问题描述】:
我有很多DataFrames,它们的周期长度不同。我正在尝试创建一个 for loop 来为所有这些 DataFrame 定义一个特定的开始和结束日期。
这是一个简单的例子:
df1:
Dates ID1 ID2
0 2021-01-01 0 1
1 2021-01-02 0 0
2 2021-01-03 1 0
3 2021-01-04 2 2
4 2021-01-05 1 4
5 2021-01-06 -1 -2
df2:
Dates ID1 ID2
0 2021-01-01 0 1
1 2021-01-02 1 2
2 2021-01-03 -1 3
3 2021-01-04 1 -1
4 2021-01-05 4 2
我想将特定的开始和结束日期定义为:
start = pd.to_datetime('2021-01-02')
end = pd.to_datetime('2021-01-04')
到目前为止,我只知道如何定义一个DataFrame的句点:
df1.loc[(df1['Dates'] >= start) & (df1['Dates'] <= end)]
有没有一种简单的方法可以同时遍历所有DataFrames 来定义开始和结束日期?
为了重现性:
import pandas as pd
df1 = pd.DataFrame({
'Dates':['2021-01-01', '2021-01-02', '2021-01-03', '2021-01-04', '2021-01-05', '2021-01-06'],
'ID1':[0,0,1,2,1,-1],
'ID2':[1,0,0,2,4,-2]})
df1['Dates'] = pd.to_datetime(df1['Dates'])
df2 = pd.DataFrame({
'Dates':['2021-01-01', '2021-01-02', '2021-01-03', '2021-01-04', '2021-01-05'],
'ID1':[0,1,-1,1,4],
'ID2':[1,2,3,-1,2]})
df2['Dates'] = pd.to_datetime(df2['Dates'])
【问题讨论】:
标签: python pandas dataframe for-loop