我有两个大型数据集answer,truth我想从中抽取一个随机样本answer,然后从中抽取与采样数据集truth具有相同索引值的样本answer,但它不起作用!这就是我所做的:answer = pd.read_csv("answer.csv")a = answer.sample(700)truth = pd.read_csv("truth.csv")truth = truth[truth.index.isin(a.index)]>>> print(a) item question worker answer9597 20308 clueweb09-enwp01-00-19667 w339 07371 20228 clueweb09-en0001-18-32106 w108 15527 20180 clueweb09-en0005-86-40955 w127 08505 20270 clueweb09-en0010-50-16267 w101 118202 20958 clueweb09-en0010-91-30990 w153 0... ... ... ... ...18004 20956 clueweb09-en0007-62-27063 w685 15532 20180 clueweb09-en0000-46-11807 w108 111510 20412 clueweb09-enwp00-91-09937 w353 16343 20202 clueweb09-en0003-34-25466 w102 016222 20780 clueweb09-en0011-26-41543 w683 0>>> print(truth) item question truth28 20002 clueweb09-en0009-15-02980 134 20002 clueweb09-en0010-92-14638 159 20002 clueweb09-en0011-89-08538 1126 20012 clueweb09-en0007-39-22682 1135 20012 clueweb09-en0007-24-18145 1... ... ... ...19610 20996 clueweb09-enwp00-98-10892 019626 20996 clueweb09-enwp00-97-10382 019663 20996 clueweb09-enwp01-53-09380 119676 20996 clueweb09-enwp01-63-12069 119688 20996 clueweb09-enwp01-69-11963 1有谁知道为什么truth给出不同的索引值?
1 回答
心有法竹
TA贡献1866条经验 获得超5个赞
你应该简单地传递你内部的值,.loc但是你现在可以忽略一个 FutureWarning。这是一个例子:
import pandas as pd
data_1 = {'index':[1,2,3,4,5],'Name':['Sanji','Zoro','Luffy','Nami','Chopper']}
data_2 = {'index':[1,2,5,6,7],'Enemies':['DfDqx','Kuro','BigM','Croco','Exodia']}
df_1 = pd.DataFrame(data_1)
df_2 = pd.DataFrame(data_2)
df_1 = df_1.set_index('index')
df_2 = df_2.set_index('index')
df_new = df_1.loc[df_2.index].dropna(how='any')
print(df_new)
匹配应该在索引值 1、2 和 5 上。输出:
Name
index
1 Sanji
2 Zoro
5 Chopper
我正在添加,dropna()因为否则您将返回所有值df_1withNaN的值是索引值不存在。
添加回答
举报
0/150
提交
取消