如何基于python中其他两个数据集的条件创建第三个数据集
我有一个任务,我需要基于另外两个连接的数据集创建一个数据集如何基于python中其他两个数据集的条件创建第三个数据集,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个任务,我需要基于另外两个连接的数据集创建一个数据集 df = pd.DataFrame(columns=['ID','P1','P2'], data=[[1, 2, 0], [2,1,0], [3, 1, 2], [4, 2, 1], [5, 1, 2], [6, 0, 1], [7, 1, 0]]) fp = pd.DataFrame(columns=['ID','FP'], data=
df = pd.DataFrame(columns=['ID','P1','P2'],
data=[[1, 2, 0], [2,1,0], [3, 1, 2], [4, 2, 1],
[5, 1, 2], [6, 0, 1], [7, 1, 0]])
fp = pd.DataFrame(columns=['ID','FP'],
data=[[1, 'fp'], [2,'i'], [3, 'i'], [4, 'fp'],
[5, 'fp'], [6, 'fp'], [7, 'i']])
我的任务是创建第三个数据集,如果fp数据集“fp”列显示“fp”,则该数据集仅包含来自df数据集的id、p1和p2
我试过这个
df2 = np.where((df['ID']==fp['ID'])&fp['FP']=='fp)
但是它不起作用我相信有比我更好的方法,但这就是我要做的
import pandas as pd
df = pd.DataFrame(columns=['ID','P1','P2'],
data=[[1, 2, 0], [2,1,0], [3, 1, 2], [4, 2, 1],
[5, 1, 2], [6, 0, 1], [7, 1, 0]])
fp = pd.DataFrame(columns=['ID','FP'],
data=[[1, 'fp'], [2,'i'], [3, 'i'], [4, 'fp'],
[5, 'fp'], [6, 'fp'], [7, 'i']])
# Merging dataframes
res = df.merge(fp)
# Filtering
res = res[res['FP'] == 'fp'].drop(columns=['FP'])
res
结果
ID P1 P2
0 1 2 0
3 4 2 1
4 5 1 2
5 6 0 1
你可以用
idx = fp['ID'][fp['FP'].eq('fp')]
df.loc[df['ID'].isin(idx)]
ID P1 P2
0 1 2 0
3 4 2 1
4 5 1 2
5 6 0 1