![](/img/trans.png)
[英]How can I extract data from an excel file like this using python and pandas?
[英]Can't extract elements from excel files in python using pandas
我有一个 Excel 文件,我可以使用库 pandas 在 Spyder 中成功读取该文件
问题是我无法像从 NumPy.ndarray 所期望的那样从df
中提取特定元素(这不是 function as_matrix()
返回的类型吗?)
例如:
print df[3,3]
df = pd.read_excel(r'C:\Users\Aydin\Desktop\network_extract_test.xls')
df.as_matrix()
print(df)
我希望阅读结果“416”,但这些行在日志中返回:
o_id d_id travel_time frequency o_iso d_iso
0 AAL AAR 25 156 DK DK
1 AAL AMS 85 1056 DK NL
2 AAL AYT 235 16 DK TR
3 AAR OSL 65 416 DK NO
4 AAR PMI 185 32 DK ES
5 ABZ LHR 94 3988 GB GB
6 ABZ LSI 65 1644 GB GB
7 ABZ SOU 110 260 GB GB
8 ACE BLK 308 52 ES GB
9 ACE BOH 232 120 ES GB
10 ACE CWL 225 104 ES GB
11 ACE MUC 253 104 ES DE
12 ACE ORY 235 36 ES FR
13 ACE OSL 328 72 ES NO
14 ACE STR 250 88 ES DE
15 ACE TXL 275 124 ES DE
16 ACE VIE 260 16 ES AT
17 ADA IST 98 5320 TR TR
18 ADB ASR 86 292 TR TR
19 ADB ATH 60 120 TR GR
20 ADB DIY 118 800 TR TR
21 ADB EZS 110 156 TR TR
22 ADB KSY 135 104 TR TR
23 ADB MAN 258 48 TR GB
24 ADB ZRH 185 120 TR CH
25 ADF ESB 80 252 TR TR
26 AES NCE 175 32 NO FR
27 AGH BMA 65 1892 SE SE
28 AGP BFS 195 252 ES GB
29 AGP BLL 209 152 ES DK
... ... ... ... ... ...
12784 XRY BRU 165 16 ES BE
12785 XRY LUX 160 16 ES LU
12786 XRY NRN 170 32 ES DE
12787 ZAD DUB 170 32 HR IE
12788 ZAD EMA 155 16 HR GB
12789 ZAD STR 80 48 HR DE
12790 ZAD ZAG 40 344 HR HR
12791 ZAG ZAD 45 424 HR HR
12792 ZAZ MAH 75 16 ES ES
12793 ZAZ TFN 185 16 ES ES
12794 ZQW RHO 195 16 DE GR
12795 ZRH BNX 110 224 CH BA
12796 ZRH GRZ 90 856 CH AT
12797 ZRH KRK 120 260 CH PL
12798 ZRH LJU 70 796 CH SI
12799 ZRH OSL 139 1040 CH NO
12800 ZRH PRN 124 796 CH RS
12801 ZRH RMI 80 16 CH IT
12802 ZRH SCQ 155 80 CH ES
12803 ZRH SPU 100 64 CH HR
12804 ZRH SUF 119 80 CH IT
12805 ZRH TGD 105 184 CH ME
12806 ZRH VCE 66 1200 CH IT
12807 ZRH ZTH 140 16 CH GR
12808 ZTH BUD 113 32 GR HU
12809 ZTH HEL 215 16 GR FI
12810 ZTH LBA 245 16 GR GB
12811 ZTH MAN 233 208 GR GB
12812 ZTH STN 210 32 GR GB
12813 ZTH VIE 123 64 GR AT
[12814 rows x 6 columns]
C:/Users/Aydin/Desktop/fichier python/test excel.py:13: FutureWarning: Method .as_matrix will be removed in a future version. Use .values instead.
df.as_matrix()
Traceback (most recent call last):
File "<ipython-input-25-c8a7ccf993ef>", line 1, in <module>
runfile('C:/Users/Aydin/Desktop/fichier python/test excel.py', wdir='C:/Users/Aydin/Desktop/fichier python')
File "C:\Users\Aydin\Anaconda2\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 786, in runfile
execfile(filename, namespace)
File "C:\Users\Aydin\Anaconda2\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 95, in execfile
exec(compile(scripttext, filename, 'exec'), glob, loc)
File "C:/Users/Aydin/Desktop/fichier python/test excel.py", line 15, in <module>
print(df[3,3])
File "C:\Users\Aydin\Anaconda2\lib\site-packages\pandas\core\frame.py", line 2927, in __getitem__
indexer = self.columns.get_loc(key)
File "C:\Users\Aydin\Anaconda2\lib\site-packages\pandas\core\indexes\base.py", line 2659, in get_loc
return self._engine.get_loc(self._maybe_cast_indexer(key))
File "pandas/_libs/index.pyx", line 108, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/index.pyx", line 132, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/hashtable_class_helper.pxi", line 1601, in pandas._libs.hashtable.PyObjectHashTable.get_item
File "pandas/_libs/hashtable_class_helper.pxi", line 1608, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: (3, 3)
因此,除了我调用df[3,3]
时,一切似乎都有效,这是为什么?
非常感谢您提前::)
您可以简单地使用df.iloc
。 不需要as_matrix()
:
df.iloc[3,3]
例子:
In [2955]: df
Out[2955]:
o_id d_id travel_time frequency o_iso d_iso
0 AAL AAR 25 156 DK DK
1 AAL AMS 85 1056 DK NL
2 AAL AYT 235 16 DK TR
3 AAR OSL 65 416 DK NO
In [2957]: df.iloc[3,3]
Out[2957]: 416
使用print(df.iloc[3,3])
Output: 416
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.