【问题标题】:How to get value in dataframe column如何在数据框列中获取值
【发布时间】:2019-02-13 18:34:53
【问题描述】:

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

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 这样我就可以将它们转换为不同的类。谢谢

【问题讨论】:

标签: python pandas


【解决方案1】:
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 将 dict 的字符串表示形式转换为字典

【讨论】:

  • 谢谢,但出现错误:AttributeError: 'str' object has no attribute 'type'
  • 刚刚在提取类型之前更新了convert dict 的字符串表示形式的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 2021-03-04
  • 2017-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多