Python 数据帧索引行比较和删除
你好 我需要一些建议我有两个数据帧。一个包含数百行,另一个包含六行。两个帧的时间戳都被索引。我想比较df1和df2中的索引值,只保留与df2中的时间戳匹配的行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
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)]
日期时间是索引还是列?