【发布时间】:2020-12-12 02:45:25
【问题描述】:
假设我有下表
| X | Y | Z | mm | ff | cc |
|---|---|---|---|---|---|
| 1 | 2 | 3 | 0.2 | 0.4 | 0.3 |
| 0.1 | 0.3 | 0.4 |
导出为 .csv 文件的文件内容如下:
X,Y,Z,mm,ff,cc
1,2,3,0.2,0.4,0.3
,,,0.1,0.3,0.4
现在.. 如果表格只有一行,我可以使用 pandas 访问 python 中的任何单元格,例如:
X = df.loc[0, 'X'] # X = 1
Y = df.loc[0, 'Y'] # Y = 2
Z = df.loc[0, 'Z'] # Z = 3
mm_1 = df.loc[0, 'mm'] # mm_1 = 0.2
ff_1 = df.loc[0, 'ff'] # ff_1 = 0.4
cc_1 = df.loc[0, 'cc'] # cc_1 = 0.3
如果我想读取第二行的单元格,我需要更改如下代码:
mm_2 = df.loc[1, 'mm'] # mm_2 = 0.1
ff_2 = df.loc[1, 'ff'] # ff_2 = 0.3
cc_2 = df.loc[1, 'cc'] # cc_2 = 0.4
现在...问题是原始 csv 文件可以有 1 行到 6 行。
让我们保持简单。如果我像上面的代码一样对所有单元格(0-1)的读取进行硬编码,当 csv 文件只有一行时,我会遇到问题,因为变量:mm_2、ff_2、@987654327 @ 不会找到任何东西。
pandas有办法处理这种情况吗?
【问题讨论】:
-
df.iterrows()? -
@QuangHoang 你是个天才!
-
请写一个答案,以便我接受