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

标签 python pandas indexing dataframe

我有一个名为 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/

相关文章:

python - 将 html 表转换为 CSV 的脚本(最好是 python)

python - 不同的方法在 Django 中无法正常工作

python-3.x - 如何在 Pandas df 列中分配列表值?

Javascript - 通过知道索引查找数组中项目的值

python - Pandas 适用,但仅适用于满足条件的行

mysql - 在Mysql中为字符串和日期时间创建索引

python - Robot Framework 从类中创建两个实例而不是一个

python - pycharm 在模块导入解析中显示错误,即使程序运行正常

python - 将列添加到 pandas 数据框中,其中包含每行的最大值以及相应的列名称

python - Pandas 比较多个列并将最长的字符串返回到新列