这里是 InputStream in = new BufferedInputStream(urlConnection);
pandas.DataFrame
。
df
我选择了一些行,并通过| Foo | Bar |
|-----|-----|
| 0 | A |
| 1 | B |
| 2 | C |
| 3 | D |
| 4 | E |
定义了一个新的数据框。
df1 = df.iloc[[1,3],:]
获取其余| Foo | Bar |
|-----|-----|
| 1 | B |
| 3 | D |
的最佳方法是什么,如下所示。
df
答案 0 :(得分:1)
我认为Foo
可被视为唯一索引。
首先从Foo
中选择df1
个值:
idx = df1['Foo'].values
然后过滤原始数据框:
df2 = df[~df['Foo'].isin(idx)]
答案 1 :(得分:1)
基于快速集合的差异
df2 = df.loc[df.index.difference(df1.index)]
df2
Foo Bar
0 0 A
2 2 C
4 4 E
只要您的index
值是唯一的,就可以使用。
答案 2 :(得分:1)
如果我正确理解,您想获取一个数据框,从中选择一些行并将其存储在变量df2
中,然后在df
中选择不在{{ 1}}。
在这种情况下,您可以进行df2
。
df[~df.isin(df2)].dropna()
根据条件x对数据帧df[ x ]
进行子集df
是~df.isin(df2)
的否定,对于属于df.isin(df2)
的{{1}}行,其取值为True。df
删除具有df2
值的行。在这种情况下,我们不需要的行在上面的过滤表达式中被强制为.dropna()
,因此我们将其删除。