【问题标题】:How to get the longest length string/integer/float from a pandas column when there are strings in the column当列中有字符串时,如何从熊猫列中获取最长长度的字符串/整数/浮点数
【发布时间】:2016-04-17 21:31:33
【问题描述】:

我有一个包含许多数据列和不同类型的数据框。我遇到了其中包含字符串和整数的一列。我试图找到最长/最短长度的值(注意不是最大值)。 (注意:我在下面使用的示例中只有整数,因为我无法弄清楚如何混合 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”长))。感谢你的帮助。谢谢。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    如果您 df 有唯一索引,我认为这应该可以工作。

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

    【讨论】:

    • 完美!谢谢@Happy001...令人尴尬的是,我在这上面花费的时间和您花费的时间一样多!!!
    • 替代astype(str).map(len),您可以使用astype(str).str.len 方法str.len
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-07
    • 2021-03-16
    相关资源
    最近更新 更多