使用 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
对于同时包含a
和x
的行,我将如何编写代码来获取col 2
和col3
的值。所以这个表的建议输出是: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 中带有空格的图像拆分列中的值
斯威夫特 3 - 'EXC_BAD_INSTRUCTION(代码 = EXC_1386_INVOP,子代码 = 0x0)' 错误
Swift 3 迁移 EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0) on cast