Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何基于python中其他两个数据集的条件创建第三个数据集_Python_Pandas_Dataframe - Fatal编程技术网

如何基于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