Pandas 如何提取具有条件的行
数据框在下面Pandas 如何提取具有条件的行,pandas,Pandas,数据框在下面 id,validity 1941079,{'NT': 2017-02-10, 'T': None} 326809,None 1935569,{'NT': None, 'T': None} 1932997,{'NT': '2017-02-13', 'T': None} 需要提取NT不是无的id 预期结果如下 df['not_none] 1941079 1932997 与和一起使用,用于过滤器: 如有必要,将字符串repr转换为字典使用带有的自定义函数try except: imp
id,validity
1941079,{'NT': 2017-02-10, 'T': None}
326809,None
1935569,{'NT': None, 'T': None}
1932997,{'NT': '2017-02-13', 'T': None}
需要提取NT
不是无的id
预期结果如下
df['not_none]
1941079
1932997
与和一起使用,用于过滤器:
如有必要,将字符串repr转换为字典使用带有的自定义函数try except
:
import ast
def parse_to_dict(x):
try:
return ast.literal_eval(x)
except:
return None
df['validity'] = df['validity'].apply(parse_to_dict)
s = df.loc[df['validity'].str.get('NT').notna(), 'id']
print (s)
0 1941079
3 1932997
Name: id, dtype: int64
请点击这个链接。