如何在python数据框中的两列上计算模式?

时间:2019-04-17 04:12:51

标签: python pandas dataframe

我的csv中有两列:名字和姓氏。我需要找到最普通的全名。 例如:

FirstName      LastName  
A                 X  
A                 P  
A                 Y  
A                 Z                   
B                 X  
B                 Z  
C                 X  
C                 W  
C                 W  

我尝试使用模式功能:

df["FirstName"].mode()[0]  
df["LastName"].mode()[0]  

但是它不能在两列上工作

每列的模式是:

名字:A-出现4次
姓氏:X-出现3次

但输出应为“ C W”。因为这是大多数时候使用的全名。

3 个答案:

答案 0 :(得分:2)

可以,

(df['FirstName'] + df['LastName']).mode()[0]

# Output : 'CW'

如果您确实需要在姓氏和姓氏之间添加空格,可以像这样将''串联起来,

(df['FirstName'] + ' ' + df['LastName']).mode()[0]
# Output : 'C W'

答案 1 :(得分:1)

您可以组合列和查找模式,

faCoffee

答案 2 :(得分:0)

您可以使用以下方法将它们连接为单个字符串:

full_names = df.FirstName + df.LastName
full_names.mode()[0]