使用 pandas-Python 3 遍历 excel 中的行和列

Posted

技术标签:

【中文标题】使用 pandas-Python 3 遍历 excel 中的行和列【英文标题】:iterate through rows and columns in excel using pandas-Python 3 【发布时间】:2017-06-02 18:04:01 【问题描述】:

我有一个使用以下代码阅读的 Excel 电子表格:

df=pd.ExcelFile('/Users/xxx/Documents/Python/table.xlsx')
ccg=df.parse("CCG")

电子表格中我想要的工作表是CCG

工作表如下所示:

  col1  col2   col3    
x    a     1      2     
x    b     3      4    
x    c     5      6     
x    d     7      8
x    a     9      10
x    b     11     12
x    c     13     14
y    a     15     16
y    b     17     18
y    c     19     20
y    d     21     22
y    a     23     24

对于同时包含ax 的行,我将如何编写代码来获取col 2col3 的值。所以这个表的建议输出是:col1=[1,9], col2=[2,10]

【问题讨论】:

【参考方案1】:

试试这个:

df = pd.read_excel('/Users/xxx/Documents/Python/table.xlsx', 'CCG', index_col=0, usecols=['col1','col2']) \
       .query("index == 'x' and col1 == 'a'")

演示:

Excel 文件:

In [243]: fn = r'C:\Temp\.data\41718085.xlsx'

In [244]: pd.read_excel(fn, 'CCG', index_col=0, usecols=['col1','col2']) \
            .query("index == 'x' and col1 == 'a'")
Out[244]:
  col1  col2
x    a     1
x    a     9

【讨论】:

new= 行出现语法错误 你忘了链接.parse("CCG") @MaxU, SyntaxError: EOF 在扫描三引号字符串时【参考方案2】:

你可以这样做:

df = pd.read_excel('/Users/xxx/Documents/Python/table.xlsx'),sheetname='CCG', index_col=0)
filter = df[(df.index == 'x') & (df.col1 == 'a')]

然后从这里,您可以将所有值作为一个 numpy 数组返回:

filter['col2']
filter['col3']

【讨论】:

【参考方案3】:

设法创建一个 count 进行迭代,直到找到 a 将 +1 添加到 count 并且仅附加到列表 index 如果它在 x 所在的范围之间,一旦我有了索引我搜索第 2 列和第 3 列并提取索引值

【讨论】:

以上是关于使用 pandas-Python 3 遍历 excel 中的行和列的主要内容,如果未能解决你的问题,请参考以下文章

如何根据 pandas-python 中带有空格的图像拆分列中的值

Pandas - Python,根据日期列删除行

斯威夫特 3 - 'EXC_BAD_INSTRUCTION(代码 = EXC_1386_INVOP,子代码 = 0x0)' 错误

Swift 3 迁移 EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0) on cast

带有变量的 NSFont 文本大小:EXC_BAD_ACCESS(代码=1,地址=0X3)

DispatchQueue.main.sync 返回 exc_bad_instruction Swift 3