如何获取数据框中的列的值。

9 浏览
0 Comments

如何获取数据框中的列的值。

我有一个数据框列,其中一行包含数据:

bloodtype
[{'id': 35, 
  'type': 'typeO'}]

该列还包括其他行中的不同血型:A、B、AB和O。

我运行了:

type(df.blood_type)

它返回了\'pandas.core.series.Series\'

df['blood_type'].str.split(":")[0][2]

它返回了\"\'typeO\'}]\"

我该如何只获得typeO、typeA、typeAB,以便将它们转换为不同的类。谢谢

admin 更改状态以发布 2023年5月21日
0
0 Comments

from ast import literal_eval
df['type'] = df['blood_type'].apply(lambda x: literal_eval(x[0]).type)

另一种解决方案:

#a more robust solution to incase the series has unexpected values
def extract_type(x):
     try:
         if type(literal_eval(x)) == 'dict':
             return literal_eval(x)
         else:
             return None
     except ValueError:
         return None
df['type'] = df['blood_type'].apply(extract_type)

编辑:在提取类型之前,使用ast.literal_eval将字典的字符串表示转换为字典。

0