Python 数据帧索引行比较和删除

Python 数据帧索引行比较和删除,python,pandas,dataframe,isin,Python,Pandas,Dataframe,Isin,你好 我需要一些建议我有两个数据帧。一个包含数百行,另一个包含六行。两个帧的时间戳都被索引。我想比较df1和df2中的索引值,只保留与df2中的时间戳匹配的行 df1 Date-Time A B C D 2012-01-11 7:10:05:00 0 1 2 3 2012-01-11 7:14:05:00 0 1 2 3 2012-01-11 7:16:05:00 0 1 2

你好

我需要一些建议我有两个数据帧。一个包含数百行,另一个包含六行。两个帧的时间戳都被索引。我想比较df1和df2中的索引值,只保留与df2中的时间戳匹配的行

df1
Date-Time                A    B    C    D
2012-01-11 7:10:05:00    0    1    2    3
2012-01-11 7:14:05:00    0    1    2    3
2012-01-11 7:16:05:00    0    1    2    3
2012-01-11 7:25:05:00    0    1    2    3
2012-01-11 7:31:05:00    0    1    2    3

df2
Date-Time                A    B    C    D
2012-01-11 7:10:05:00    6    8    1.5  6.8
2012-01-11 7:25:05:00    0    11   4    3.3
2012-01-11 7:31:05:00    0    44   2.2  3.3

因此,d1中应该只剩下第0、3和4行,将索引更改为列,然后按照下面链接中的说明进行操作,然后可以将其更改回索引


如果
日期-时间
是一列,请尝试以下操作:
df1=df1[df1['Date-Time']==df2['Date-Time']]]

您还可以通过合并数据帧来完成此操作:

df1=pd.merge(df2['Date-Time',df1,on='Date-Time',how='left')

确保您的“日期-时间”列是这两个字段中的
索引(您可以通过
设置索引()
获得它,然后选择1:

1)使用
isin

df1_new = df1[df1.index.isin(df2.index)]
2)使用
loc

df1_new = df1.loc[df2.index, :]
这应该可以
df1.loc[df1.index.isin(df2.index)]

日期时间是索引还是列?