当列

时间:2016-01-13 03:02:48

标签: python pandas

我有一个包含许多数据列和不同类型的数据框。我遇到过一个包含String和Integers的列。我试图找到最长/最短长度的值(注意不是最大值)。 (注意:例如我在下面使用的只有整数,因为我无法弄清楚如何混合dtypes并仍然称之为int64列)

    Name    MixedField
a   david   32252
b   andrew  4023
c   calvin  25
d   david   2
e   calvin  522
f   david   35

我使用的方法是将df列转换为String Series(因为它们可能是double / int / string /组合),然后我可以从这个系列中获取最大/最小长度项:

df['MixedField'].apply(str).map(len).max()
df['MixedField'].apply(str).map(len).min()

但无法弄清楚如何选择最大和最小长度的实际值!?! (即32252(最长)和2(最短)

(我可能不需要解释这一点,但最大和最长之间存在细微差别......(即“aa”长于“z”))。感谢您的帮助。感谢。

1 个答案:

答案 0 :(得分:1)

我认为如果df有唯一索引,这应该有用。

field_length = df.MixedField.astype(str).map(len)
print df.loc[field_length.argmax(), 'MixedField']
print df.loc[field_length.argmin(), 'MixedField']