获取数据框中列的每个元素的第一个字符

时间:2016-05-04 13:15:27

标签: python pandas indexing dataframe

我有一个名为df的数据框。它有一个名为“Spec Type”的列。使用熊猫,

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]部分。我用它来获取索引元素的第一个字符。我该怎么办?

1 个答案:

答案 0 :(得分:3)

df.loc[df['Spec Type'].notnull(), 'Spec Type Index'] = df['Spec Type'].str[0]

应该可以工作,问题是NaN是一个浮点型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