【发布时间】:2017-06-26 23:53:26
【问题描述】:
如何从 Excel 文件创建的 Dataframe 中提取列与特定值匹配的行?
以下是 Dataframe 中的几行:
Food Men Women
0 Total fruit 86.20 88.26
1 Apples, Total 89.01 89.66
2 Apples as fruit 89.18 90.42
3 Apple juice 88.78 88.42
4 Bananas 95.42 94.18
5 Berries 84.21 81.73
6 Grapes 88.79 88.13
这是我用来读取 excel 文件的代码,选择我需要的列并适当地重命名它们:
data1= pd.read_excel('USFoodCommodity.xls', sheetname='94-98 FAH', skiprows=76,skip_footer=142, parse_cols='A, H, K')
data1.columns = ['Food', 'Men', 'Women']
# Try 1: data1 = data1[data1['Food'].isin(['Total fruit']) == True] works
# Try 2: data1 = data1[data1['Food'].isin(['Apple, Total']) == True] doesn't work
# Try 3: data1 = data1.iloc[[1]] returns Apples, Total but not appropriate to use integer index
# Try 4: data1[data1['Food'] == 'Berries'] doesn't work
到目前为止,根据this、this 或here 等答案,我只能返回 Food = "Total fruit" 的第一个索引。当我尝试上面的其他方法时,我只得到列名,例如:
Food Men Women
我是 pandas 的新手,看不出哪里出错了。为什么我可以提取 Food == Total fruit 但不能提取其他任何内容的第一行?
【问题讨论】:
标签: python-3.x pandas jupyter-notebook