如何基于python中的另一个数据帧获取数据帧的子集

如何基于python中的另一个数据帧获取数据帧的子集,python,pandas,dataframe,Python,Pandas,Dataframe,我刚刚学习了pandas,基本上我想根据存储在另一个数据帧中的ID获取数据帧的一些行。让我向您展示代码: import pandas as pd from sklearn.model_selection import train_test_split f_data="data.tsv" all_data = pd.read_csv(f_data,delimiter='\t',encoding='utf-8',header=None) x_data = all_data[[0,1,3]] y_d

我刚刚学习了pandas,基本上我想根据存储在另一个数据帧中的ID获取数据帧的一些行。让我向您展示代码:

import pandas as pd
from sklearn.model_selection import train_test_split

f_data="data.tsv"
all_data = pd.read_csv(f_data,delimiter='\t',encoding='utf-8',header=None)
x_data = all_data[[0,1,3]]
y_data = all_data[[2]]

# Split train and test sets
x_train,x_test,y_train,y_test = train_test_split(x_data,y_data,test_size=0.1)
所有_数据总共有12列。我在x_数据中使用了3列,在y_数据中使用了1列

创建
x_train
x_test
后,我希望将这些实例写入
tsv
文件,但在这样做的同时,我希望写入存储在
all_data
中的所有12列。要做到这一点,我需要将
x\u-train
x\u-test
中的实例与
所有\u数据进行匹配。我怎么能这么做

编辑

以下是我的数据的外观:

所有数据

        0                                                  1                              2    3   ...                                                8                      9     10    11
0       35  Auch in Großbritannien, wo 19 Atomreaktoren in...                       Ausstieg -1.0  ...                                      Sunday Times           Sunday Times   NaN     1
#继续这样

x\u列车

         0                                                  1    3
939   2074  Die CSU verlangt von der schwarz-gelben Koalit...  1.0

因此,我想做的是获取所有_数据中以939710288854433开头的行,并将它们写入一个文件。

分割数据的
索引与原始数据相对应,并可用于查找原始数据(假设索引是唯一的):


可能使用
all_data.loc[x_data.index]
?您还没有向我们显示您的数据。@JohnZwinck我通过添加一些数据编辑了我的问题。@JohnZwinck您编辑的评论有效。谢谢
all_data.loc[x_train.index]
all_data.loc[x_test.index]