挑战:给定一个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的列 。COLdfdf.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的列 。COLdfdf.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的列 。COLdfdf.COL.str为你提供不同的字符串方法来应用于这个列。df.COL.str.len()将列字符串转换为整数长度值,其中每个字符串被转换为其长度。df.COL.str.len().idxmax()获得最大列值的索引,即该列中最长的字符串的索引。df['A'][idx]得到列 和索引 的DataFrame列值。'A'idx