如何利用Python查找数据框架列中最长的字符串

537 阅读2分钟

💬 挑战:给定一个Pandas DataFrame。如何找到给定DataFrame列中最长的字符串?

import pandas as pd

df = pd.DataFrame(['a', 'aaa', 'aaaaa'], columns=['A'])
print(df)

       A
0      a
1    aaa
2  aaaaa  # < – This is what we want!

我们接下来要讨论这个问题的不同变体。接下来让我们从最简单的开始吧!

方法1:查找DataFrame列中最长的字符串的长度

要找到DataFrame列中最长的字符串的长度,使用表达式df.COL.str.len().max() ,用你的自定义列名替换COL

import pandas as pd

df = pd.DataFrame(['a', 'aaa', 'aaaaa'], columns=['A'])
print(df.A.str.len().max())
# 5

这就是表达式df.COL.str.len().max() 的工作步骤。

  • df.COL 访问你的DataFrame的列 。COL df
  • df.COL.str 为你提供不同的字符串方法来应用于这个列。
  • df.COL.str.len() 将列字符串转换为整数长度值,其中每个字符串被转换为其长度。
  • df.COL.str.len().max() 得到最大的列值,也就是最长的字符串的长度。

方法2:查找数据框架列中最长字符串的索引

要找到DataFrame列中最长字符串的索引,使用表达式df.COL.str.len().idxmax() ,用你的自定义列名替换COL

import pandas as pd

df = pd.DataFrame(['a', 'aaa', 'aaaaa'], columns=['A'])
print(df.A.str.len().idxmax())
# 2

这就是表达式df.COL.str.len().max() 的工作步骤。

  • df.COL 访问你的DataFrame的列 。COL df
  • df.COL.str 为你提供不同的字符串方法来应用于这个列。
  • df.COL.str.len() 将列字符串转换为整数长度值,其中每个字符串被转换为其长度。
  • df.COL.str.len().idxmax() 获得最大列值的索引,即该列中最长的字符串的索引。

方法3:获取DataFrame列中最长的字符串

要获得DataFrame列中最长的字符串,首先使用df.COL.str.len().idxmax() ,用你的自定义列名替换COL ,获得该字符串在列中的索引。然后使用正常的索引,比如df['COL'][idx] ,来访问列'COL' 中索引idx 的值。

import pandas as pd

df = pd.DataFrame(['a', 'aaa', 'aaaaa'], columns=['A'])

# 1. Get index of longest string in column
idx = df.A.str.len().idxmax()
# Index: 2

# 2. Get longest string using df['A'][idx]
print('Longest string in column:', df['A'][idx])
# Longest string in column: aaaaa

这就是表达式df.COL.str.len().max() 的工作方式,一步一步来。

  • df.COL 访问你的DataFrame的列 。COL df
  • df.COL.str 为你提供不同的字符串方法来应用于这个列。
  • df.COL.str.len() 将列字符串转换为整数长度值,其中每个字符串被转换为其长度。
  • df.COL.str.len().idxmax() 获得最大列值的索引,即该列中最长的字符串的索引。
  • df['A'][idx] 得到列 和索引 的DataFrame列值。'A' idx