我有一个像这样的数据框:
df
col1 col2 col3 col4
A B C 12
A B C 8
A B C 10
P Q R 12
P Q R 11
K L S 1
K L S 15
U V R 20
我想获取那些col1和col2组合的col3值最大为col4的行
例如,我寻找的结果是
col1 col2 col3 col4
A B C 12
P Q R 12
K L S 15
U V R 20
如何使用熊猫以最有效的方式做到这一点?
答案 0 :(得分:0)
您可以通过max()使用groupby函数:
df = pd.DataFrame({'col1' : ['A','A','A','P','P'], 'col2' : ['B','B','B','Q','Q'],
'col3':['C','C','C','R','R'], 'col4':[12,8,10,12,11]})
df.groupby(['col1', 'col2']).max()
出:
col1 col2 col3 col4
A B C 12
P Q R 12
答案 1 :(得分:0)
尝试一下:
>>> import pandas as pd
>>> df = pd.read_csv("t.csv")
>>> df
col1 col2 col3 col4
0 A B C 12
1 A B C 8
2 A B C 10
3 P Q R 12
4 P Q R 11
5 K L S 1
6 K L S 15
7 U V R 20
>>> df.groupby(['col1']).max()
col2 col3 col4
col1
A B C 12
K L S 15
P Q R 12
U V R 20
答案 2 :(得分:0)
您需要使用groupby:
import pandas as pd
# setup test data
data = {'col1': ['A', 'A', 'A', 'P', 'P', 'K', 'K', 'U'], 'col2': ['B', 'B', 'B', 'Q', 'Q', 'L', 'L', 'V'],
'col3': ['C', 'C', 'C', 'R', 'R', 'S', 'S', 'R'], 'col4': [12, 8, 10, 12,11,1,15,20]}
data = pd.DataFrame(data=data)
# get max values
out_data = data.groupby(['col1', 'col2', 'col3']).max()
输出:
col1 col2 col3 col4
A B C 12
K L S 15
P Q R 12
U V R 20