【问题标题】:iterate through rows and columns in excel using pandas-Python 3使用 pandas-Python 3 遍历 excel 中的行和列
【发布时间】: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]

【问题讨论】:

    标签: excel python-3.x loops pandas


    【解决方案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 列并提取索引值

      【讨论】:

        猜你喜欢
        • 2021-02-25
        • 2019-05-28
        • 2016-12-08
        • 2022-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-23
        相关资源
        最近更新 更多