如何从DataFrame提取单元格值?为何得到Series而非单个值?
问题原因与解决方法
为什么得到Series而非单个值?
使用df.loc[行筛选条件, 列名]时,哪怕筛选结果只有一行,pandas默认会返回单列Series(保留数据的结构特性),而非直接返回单个标量值。你看到的1 west就是索引为1、值为west的Series对象。
几种获取单个字符串值的方法:
方法1:用
.iloc[0]取第一个元素well='test2' region_thiswell = df_test.loc[df_test['Well']==well,'Region'].iloc[0] # 输出:'west'方法2:用
.item()提取标量(推荐,空值会报错更安全)region_thiswell = df_test.loc[df_test['Well']==well,'Region'].item()方法3:访问
.values数组的第一个元素region_thiswell = df_test.loc[df_test['Well']==well,'Region'].values[0]方法4:用
at直接定位标量(效率更高)idx = df_test[df_test['Well'] == well].index[0] region_thiswell = df_test.at[idx, 'Region']
内容的提问来源于stack exchange,提问作者roudan
相关产品推荐
相关产品推荐

