【问题标题】:Get first character of each element of a column in a dataframe获取数据框中列的每个元素的第一个字符
【发布时间】:2016-05-04 13:15:27
【问题描述】:

我有一个名为 df 的数据框。它有一个名为“规格类型”的列。使用熊猫,

df['Spec Type']

0         NaN
1          A1
2         G7V
3       F7+K4
.         .
.         .
169       A0e

我只想获取每个条目的第一个字符,并将其作为 df 的一个新列,称为“规格类型索引”。但是,以下代码给了我一个错误:

df['Spec Type Index'] = [i[0] for i in df['Spec Type']]

'float' 对象不可下标

错误在 i[0] 部分。我用它来获取索引元素的第一个字符。我该怎么办?

【问题讨论】:

    标签: python pandas indexing dataframe


    【解决方案1】:
    df.loc[df['Spec Type'].notnull(), 'Spec Type Index'] = df['Spec Type'].str[0]
    

    应该可以,问题是 NaN 是一个 float dtype,所以你不能使用 str 方法,像上面这样的掩码可以避免这种情况

    In [48]:
    df.loc[df['Spec Type'].notnull(), 'Spec Type Index'] = df['Spec Type'].str[0]
    df
    
    Out[48]:
          Spec Type Spec Type Index
    index                          
    0           NaN             NaN
    1            A1               A
    2           G7V               G
    3         F7+K4               F
    

    【讨论】:

    • 谢谢!但这给了我规格类型的精确副本,而不仅仅是每个元素的第一个字符,比如“A1”元素的“A”。
    • 你试过我更新的答案了吗,我的输出也匹配你的吗?
    猜你喜欢
    • 1970-01-01
    • 2019-05-20
    • 1970-01-01
    • 2013-06-21
    • 2013-06-12
    • 2019-03-26
    • 1970-01-01
    • 2020-06-21
    • 1970-01-01
    相关资源
    最近更新 更多