2017-07-10 20 views
-1

2つのデータフレームに2つの列があり、列は同じですがサイズは異なります。 2つの列を比較して、両方で同じ値のインデックスを持つにはどうすればよいでしょうか? df1とdf2では、年齢は2つに共通ですが、df1には1000の行があり、df2には200の行があります。同じ年齢の値を持つ行のインデックスを持たせたいですか?パンダは異なるサイズの2つの列を比較します

+0

そこで質問で両方の列は、年齢データがある - 同じフォーマット、すべてを? – Ksofiac

+0

はい、それらは同じフォーマットと行数以外のすべてを持っています。 – sunny

答えて

1

あなたは、インデックス標識に.locを使用することができます。

df1.age < df2.loc[df1.index].age 

を例:

df1 = pd.DataFrame({'age':np.random.randint(1,10,10)}) 

df2 = pd.DataFrame({'age':np.random.randint(1,10,20)}) 

出力:

df1.assign(age_2=df2.loc[df1.index],cond=df1.age < df2.loc[df1.index].age) 

0  True 
1  True 
2 False 
3  True 
4  True 
5 False 
6 False 
7  True 
8 False 
9 False 
Name: age, dtype: bool 

すべて1つのデータフレーム内のすべてを取得します

出力:

age age_2 cond 
0 3  5 True 
1 3  8 True 
2 6  6 False 
3 4  7 True 
4 4  7 True 
5 5  2 False 
6 2  2 False 
7 3  7 True 
8 6  3 False 
9 5  4 False 
関連する問題