我有一个 df
双列 name
和 time
. 我想找到输入之间的行--。input1
和 input2
input1 = pd.Period('4/21/2020')
input2 = pd.Period('5/20/2020')
df
raw_data = {
'name': ['a', 'b', 'c', 'd','e','f','g','h','i'],
'time': ['2020-03-12','2020-03-16','2020-04-29','2020-03-16',
'2020-03-16','2020-04-16','2020-03-09','2020-05-19','2020-04-23']
}
df = pd.DataFrame(raw_data, columns = ['name', 'time'])
name time
0 a 2020-03-12
1 b 2020-03-16
2 c 2020-04-29
3 d 2020-03-16
4 e 2020-03-16
5 f 2020-04-16
6 g 2020-03-09
7 h 2020-05-19
8 i 2020-04-23
我的预期产出。
df
name time
2 c 2020-04-29
7 h 2020-05-19
8 i 2020-04-23
我已经试过了,我有一个有两列名称和时间的df。
df['time'] = pd.to_datetime(df['time'])
df = df[df['time'].dt.to_period('d').isin([input1, input2])]
你的输入值是需要转换为时间戳的Periods。
df.loc[(df['time'] > input1.to_timestamp()) & (df['time'] < input2.to_timestamp())]
name time
2 c 2020-04-29
7 h 2020-05-19
8 i 2020-04-23