我有一个名为 df 的数据框。它有一个名为“规范类型”的列。使用 Pandas ,
df['Spec Type']
0 NaN
1 A1
2 G7V
3 F7+K4
. .
. .
169 A0e
我只想获取每个条目的第一个字符,并将其作为 df 的一个新列,称为“Spec Type Index”。但是,下面的代码给我一个错误:
df['Spec Type Index'] = [i[0] for i in df['Spec Type']]
'float' object is not subscriptable
错误在i[0]部分。我用它来获取索引元素的第一个字符。我该怎么办?
最佳答案
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
关于python - 获取数据框中列的每个元素的第一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37028941/