将两列与 pandas 进行比较时对数据帧进行子集化
Subsetting dataframe when comparing two columns with pandas
假设我有一个名为 df
:
的数据框
name X Y
0 John 1 1
1 Cindy 1 0
2 Ella 0 1
3 David 0 0
我想比较列 X
和 Y
,当它们都是 1 时,相应的行被添加到一个名为 df2
.[=18 的新数据框中=]
df2
的期望输出是这样的:
name X Y
0 John 1 1
此外,我想在
时做同样的事情
- X 为 1 Y 为 0
- X 为 0 Y 为 1
- X 为 0,Y 为 0。
试试这个:
dfs = [y for x,y in df.groupby(['X','Y'])]
df2 = dfs[0]
df3 = dfs[1]
df4 = dfs[2]
df5 = dfs[3]
尝试:
dfs = list(dict(list(df.groupby(['X','Y']))).values())
假设我有一个名为 df
:
name X Y
0 John 1 1
1 Cindy 1 0
2 Ella 0 1
3 David 0 0
我想比较列 X
和 Y
,当它们都是 1 时,相应的行被添加到一个名为 df2
.[=18 的新数据框中=]
df2
的期望输出是这样的:
name X Y
0 John 1 1
此外,我想在
时做同样的事情- X 为 1 Y 为 0
- X 为 0 Y 为 1
- X 为 0,Y 为 0。
试试这个:
dfs = [y for x,y in df.groupby(['X','Y'])]
df2 = dfs[0]
df3 = dfs[1]
df4 = dfs[2]
df5 = dfs[3]
尝试:
dfs = list(dict(list(df.groupby(['X','Y']))).values())