繁体   English   中英

无法使用 pandas 从 python 中的 excel 文件中提取元素

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM