Pandas:根据列名和数据获取Excel数据

时间:2017-03-17 04:32:13

标签: python pandas

我正在使用pandas来阅读下面附带的excel图像文件。

file.xls

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)来获取它。

2 个答案:

答案 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