我正在使用pandas来阅读下面附带的excel图像文件。
import pandas as pd
file = "file.xls"
xl = pd.ExcelFile(file)
df1 = xl.parse("Sheet1")
根据excel文件,我想打印出约翰'换句话说,我想通过Col Name'卖家' ,价值'约翰' ,Col Names' fruit' &安培; '蔬菜&#39 ;. O / p应该是 香蕉,芒果,马铃薯和豌豆。
'约翰' Col'卖家' &安培; '买方' ,所以我想提一下Col Name。 是否可以在像这样的pandas中获取部分数据我需要根据每个所需列的值索引(' John' here)来获取它。
答案 0 :(得分:0)
您可以在此处提供多个掩码来解决此问题
mask1 = df['Seller'] == 'John'
mask2 = df['Buyer'] == 'John'
john = df[mask1 | mask2]
答案 1 :(得分:0)
我认为你需要使用boolean indexing
loc
通过布尔掩码选择列:
print (df['Seller'] == 'John')
0 False
1 False
2 False
3 True
Name: Seller, dtype: bool
df1 = df.loc[df['Seller'] == 'John', ['fruit','vegetables']]
print (df1)
fruit vegetables
3 mango Pea
如果需要按lower
案例值进行比较:
df1 = df.loc[df['Seller'].str.lower() == 'john', ['fruit','vegetables']]
print (df1)
fruit vegetables
0 banana Potato
3 mango Pea
如果需要返回所有列,只需删除loc
:
df1 = df.loc[df['Seller'].str.lower() == 'john']
print (df1)
Seller fruit vegetables purchaser
0 john banana Potato Trump
3 John mango Pea Mark