Zei*_*ein 2 python pandas scikit-learn sklearn-pandas
我有 2 个数据帧 df1 和 df2,它们具有相同的行数,但顺序不同。数据帧有一个 ID 列,其中包含每行的唯一标识符,两个数据帧都有此 ID 列,这是我希望 df2 中的行顺序与 df1 中的匹配的列。我希望顺序相同的原因是数据帧将传递给 sklearn train_test_split 并且我希望以完全相同的顺序拆分数据帧。我怎样才能做到这一点?
这是第一个数据框:
df1
Paper ID Document Label
math.123.txt df1 content 1 0
math.321.txt df1 content 2 0
math.213.txt df1 content 3 0
df2
Paper ID Document Label
math.123.txt df2 content 1 0
math.213.txt df2 content 2 0
math.321.txt df2 content 3 0
Run Code Online (Sandbox Code Playgroud)
df2 所需的顺序:
df2
Paper ID Document Label
math.123.txt df2 content 1 0
math.321.txt df2 content 3 0
math.213.txt df2 content 2 0
Run Code Online (Sandbox Code Playgroud)
所以本质上我只想根据 df1["Paper ID"] 中的行顺序对 df2 中的行重新排序
由于您想根据 Paper ID 对数据帧进行排序,因此您应该首先将它们设置为两个数据帧中的索引:
df1.set_index('Paper ID', inplace=True)
df2.set_index('Paper ID', inplace=True)
Run Code Online (Sandbox Code Playgroud)
现在您可以重新索引df2以匹配以下顺序df1:
df2 = df2.reindex(df1.index)
Run Code Online (Sandbox Code Playgroud)
最后,重置索引以恢复默认索引:
df1.reset_index(inplace=True)
df2.reset_index(inplace=True)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2169 次 |
| 最近记录: |