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

时间:2018-08-05 10:13:49

标签: python pandas dataframe

我刚刚学习了熊猫,基本上我想根据存储在另一个数据帧中的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)

all_data共有12列。我在x_data中使用3列,在y_data中使用1列。

一旦我创建了x_trainx_test,我想将这些实例写入tsv文件中,但同时我想将所有存储在{{1 }}。为此,我需要将all_datax_train中的实例与x_test进行匹配。我该怎么办?

编辑

这是我的数据的样子:

all_data

all_data

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

# continues like that

x_train

所以,我要做的是在all_data中获取以939,710,288,854,433开头的行并将其写入文件。

1 个答案:

答案 0 :(得分:0)

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

all_data.loc[x_train.index]
all_data.loc[x_test.index]