我正在尝试在pandas数据框中提取一个单元格值,但它以以下格式作为一系列出现:
21 Employed
Name: VAR_TEXT_, dtype: object
我只想要关键字“ Employed”,但将其作为pandas系列。
x=df1.loc[df1['VAR_NAME_'] == 'employmentType']
x1 = x.ix[:,47]
print(x1)
样本数据
data=['474400', '47', '474400', '1275', 'NULL', 'POC:32:420345', 'NULL', '474400', 'NULL', '1', '0', '1', '0', '0', '1', 'NULL', '', 'NULL', 'sid-EE2BC780-1E99-484A-BCC0-B4D9FD30A5BB', '2018-07-23 10:52:02.536', 'user_1034', 'NULL', '0', '0', '0', '0', '0', '0', '0', '0', '0', 'NULL', 'NULL', 'POC', 'POC:32:420345', 'oopp', '32', '420317', '503780', 'employmentType', 'string', '1', '474400', '474400', 'NULL', 'NULL', 'NULL', 'Employed', 'NULL', 'NULL']
df=pd.DataFrame(data)
注意:列列表太长,因此没有在此处粘贴。 我尝试了太多选项,例如将字段转换为字符串,但仍然无法正常工作。
答案 0 :(得分:2)
将VAR_TEXT_
的列loc
添加到Series
:
x = df1.loc[df1['VAR_NAME_'] == 'employmentType', 'VAR_TEXT_']
print(x)
21 Employed
Name: VAR_TEXT_, dtype: object
如果没有要提取的元素,然后将next
与可选参数一起使用:
a = next(iter(x), 'no matched value')
print (a)
Employed
x=df1.loc[df1['VAR_NAME_'] == 'aaa', 'VAR_TEXT_']
print(x)
Series([], Name: VAR_NAME_, dtype: object)
a = next(iter(x), 'no matched value')
print (a)
no matched value
答案 1 :(得分:1)
如何使用.values
:
x=df1.loc[df1['VAR_NAME_'] == 'employmentType']
x1 = x.ix[:,47].values
print(x1)
打印出:
Employed
答案 2 :(得分:0)
temp_df = df1.loc[df1['VAR_NAME_'] == 'employmentType']
if not temp_df.empty:
print(temp_df.iloc[0]['VAR_NAME_'])
else:
print("Not found")
这也可以处理DF中没有要搜索的键的情况。