簡體   English   中英

Python Pandas Dataframe - 最佳加入和篩選條件

[英]Python Pandas Dataframe - Best Join and filter condition

輸入:

時間
2/2/22 X
2/2/22 X
2/2/22 X
2/2/22 一種
2/2/22 P
2/3/22 P
2/2/22 C
2/3/22 X

Output:

時間 時間
2/2/22 X 2/2/22 X
2/2/22 X 2/3/22 X
2/2/22 P 2/3/22 P

注意:第 4 和第 7 行被忽略,因為沒有對應項。 每行應該只與它們的對應行連接一次。 加入應該發生在同一天和第二天。

嘗試這個,

pd.concat([df.iloc[::2, :].reset_index(drop = True), df.iloc[1::2, :].reset_index(drop = True)], axis = 1)

Output -

時間 時間
0 2/2/22 X 2/2/22 X
1個 2/2/22 X 2/3/22 X
df2 = df.merge(df, left_on=['From', 'To'], right_on=['To', 'From'])
df2[df2.Dt_x < df2.Dt_y] 
# Or, we could be more exact if they were proper datetimes:
# df2[df2.Dt_x == (df2.Dt_y - pd.Timedelta(days=1))

Output:

     Dt_x From_x To_x    Dt_y From_y To_y
1  2/2/22      X    Y  2/3/22      Y    X
3  2/2/22      X    Y  2/3/22      Y    X
8  2/2/22      P    Q  2/3/22      Q    P

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM