我有一个这样的数据框:
df = pd.DataFrame(
[['101', 'a', 'in', '10'],
['101', 'a', 'out', '10'],
['102', 'b', 'in', '20'],
['103', 'c', 'in', '30'],
['103', 'c', 'out', '40']],
columns=['col1', 'col2', 'col3', 'col4']
)
Run Code Online (Sandbox Code Playgroud)
我想按 col1 分组并找到在 col2 和 col4 中具有相同值的成对记录,但一个在 col3 中有 'in' 一个在 col3 中有 'out'。预期的结果是:
df_out = pd.DataFrame(
[['101', 'a', 'in', '10'],
['101', 'a', 'out', '10']],
columns=['col1', 'col2', 'col3', 'col4']
)
Run Code Online (Sandbox Code Playgroud)
感谢您的帮助。
让我们尝试transform
一下nunique
out = df[df.groupby(['col1','col2','col4'])['col3'].transform('nunique')==2]
Out[187]:
col1 col2 col3 col4
0 101 a in 10
1 101 a out 10
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
47 次 |
最近记录: |