Python 获取pandas.DataFrame其余部分的最聪明的方法是什么?
这是一个pandas.DataFrame df 我选择了一些行,并通过df1=df.iloc[[1,3],:]定义了一个新的数据帧 获得df其余部分的最佳方法是什么,如下所示Python 获取pandas.DataFrame其余部分的最聪明的方法是什么?,python,pandas,dataframe,Python,Pandas,Dataframe,这是一个pandas.DataFrame df 我选择了一些行,并通过df1=df.iloc[[1,3],:]定义了一个新的数据帧 获得df其余部分的最佳方法是什么,如下所示 | Foo | Bar | |-----|-----| | 0 | A | | 2 | C | | 4 | E | 我假设Foo可以被视为唯一的索引 首先从df1中选择Foo值: 然后过滤原始数据帧: df2 = df[~df['Foo'].isin(idx)] 我假设Foo可以被视为唯一的索引
| Foo | Bar |
|-----|-----|
| 0 | A |
| 2 | C |
| 4 | E |
我假设Foo可以被视为唯一的索引
首先从df1中选择Foo值:
然后过滤原始数据帧:
df2 = df[~df['Foo'].isin(idx)]
我假设Foo可以被视为唯一的索引
首先从df1中选择Foo值:
然后过滤原始数据帧:
df2 = df[~df['Foo'].isin(idx)]
快速基于集合的扩散
df2 = df.loc[df.index.difference(df1.index)]
df2
Foo Bar
0 0 A
2 2 C
4 4 E
只要索引值是唯一的,就可以工作。基于集的快速差分
df2 = df.loc[df.index.difference(df1.index)]
df2
Foo Bar
0 0 A
2 2 C
4 4 E
只要索引值是唯一的,就可以工作。如果我理解正确,您希望获取数据帧,从中选择一些行并将其存储在变量df2中,然后选择df中不在df2中的行 如果是这种情况,您可以执行df[~df.isindf2].dropna df[x]根据条件x将数据帧df子集 ~df.isindf2是df.isindf2的否定,对于属于df2的df行,它的计算结果为True。 .dropna删除具有NaN值的行。在这种情况下,我们不想要的行在上面的过滤表达式中被强制为NaN,所以我们去掉了这些行。
如果我理解正确,您需要获取一个数据帧,从中选择一些行并将它们存储在变量df2中,然后选择df中不在df2中的行 如果是这种情况,您可以执行df[~df.isindf2].dropna df[x]根据条件x将数据帧df子集 ~df.isindf2是df.isindf2的否定,对于属于df2的df行,它的计算结果为True。 .dropna删除具有NaN值的行。在这种情况下,我们不想要的行在上面的过滤表达式中被强制为NaN,所以我们去掉了这些行。
df2 = df.loc[df.index.difference(df1.index)]
df2
Foo Bar
0 0 A
2 2 C
4 4 E