我有一个包含许多列数据和不同类型的数据框。我遇到了其中包含String和Integers的一列。我试图找到最长/最短长度的值(注意不是最大值)。 (注意:例如,我在下面使用的eg中仅包含整数,因为我无法弄清楚如何混合dtypes并将其仍称为int64列)
Name MixedField
a david 32252
b andrew 4023
c calvin 25
d david 2
e calvin 522
f david 35
我使用的方法是将df列转换为String系列(因为它们可能是double / int / string / combinations),然后可以从该系列中获取最大/最小长度的项目:
df['MixedField'].apply(str).map(len).max()
df['MixedField'].apply(str).map(len).min()
但是无法找出如何选择最大和最小长度的实际值! (即32252(最长)和2(最短)
(我可能不需要解释这一点,但是最大和最长之间存在细微的区别……(即“ aa”长于“ z”))。感谢你的帮助。谢谢。
最佳答案
我认为,如果您df
具有唯一索引,这应该可以工作。
field_length = df.MixedField.astype(str).map(len)
print df.loc[field_length.argmax(), 'MixedField']
print df.loc[field_length.argmin(), 'MixedField']