繁体   English   中英

访问从 a.csv 文件 python 创建的 object 中的特定数据

[英]Accessing specific data in an object created from a .csv file python

我希望你能在这里帮助我,这可能很简单,但它让我发疯试图弄清楚。 因此,我使用 pandas 将数据从 csv 文件读取到 object“数据”中。 如果我运行“print(data)”,我会从下面的命令行中获取第一部分。 我想访问名称和价格。 "print(data.at[i, "Name"])" 非常适合 Name 列,其中 I 只是一个循环计数器并代表行。 但是我无法访问价格。 我认为“print(data.at[i, “price”])”会起作用,但它会抛出错误,正如您从下面读出的命令行中看到的那样。 我的完整代码是按照命令行读出来的。

读出命令行

                                                   Name  SKU Regular price
0     30″ Straight Long Ponytail by Exposed Luxury H...  NaN           NaN

1     30″ Straight Long Ponytail by Exposed Luxury H...  NaN         £6.95

2     30″ Straight Long Ponytail by Exposed Luxury H...  NaN         £6.95

3     30″ Straight Long Ponytail by Exposed Luxury H...  NaN         £6.95

4     30″ Straight Long Ponytail by Exposed Luxury H...  NaN         £6.95

...                                                 ...  ...           ...

2814        Yankee Candle Large Jar - Fairy Floss (1pc)  NaN        £10.50

2815  Yankee Candle Large Jar - Midnight Magnolia (1pc)  NaN        £10.50

2816      Yankee Candle Large Jar - Rose Lemonade (1pc)  NaN        £10.50

2817  Yankee Candle Large Jar - Tropical Fruit Punch...  NaN        £10.50

2818  YSL Touche Eclat Illuminating Pen 2.5ml No.1 (...  NaN        £15.95

[2819 rows x 3 columns]
30″ Straight Long Ponytail by Exposed Luxury Hair (1pc) - 1001 - Light Blonde, 1 Piece
Traceback (most recent call last):
  File "C:\Python310\lib\site-packages\pandas\core\indexes\base.py", line 3629, in get_loc
    return self._engine.get_loc(casted_key)
  File "pandas\_libs\index.pyx", line 136, in pandas._libs.index.IndexEngine.get_loc
  File "pandas\_libs\index.pyx", line 163, in pandas._libs.index.IndexEngine.get_loc
  File "pandas\_libs\hashtable_class_helper.pxi", line 5198, in pandas._libs.hashtable.PyObjectHashTable.get_item
  File "pandas\_libs\hashtable_class_helper.pxi", line 5206, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 'price'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\drwyn\OneDrive\Desktop\Amazon\Scraper\scrape2.py", line 9, in <module>
    print(data.at[i, "price"])
  File "C:\Python310\lib\site-packages\pandas\core\indexing.py", line 2275, in __getitem__
    return super().__getitem__(key)
  File "C:\Python310\lib\site-packages\pandas\core\indexing.py", line 2226, in __getitem__
    return self.obj._get_value(*key, takeable=self._takeable)
  File "C:\Python310\lib\site-packages\pandas\core\frame.py", line 3615, in _get_value
    series = self._get_item_cache(col)
  File "C:\Python310\lib\site-packages\pandas\core\frame.py", line 3931, in _get_item_cache
    loc = self.columns.get_loc(item)
  File "C:\Python310\lib\site-packages\pandas\core\indexes\base.py", line 3631, in get_loc
    raise KeyError(key) from err
KeyError: 'price'

我的代码


    import pandas as pd
    data = pd.read_csv("data.csv")

    print(data)

    i = 1
    while i < 6:
      print(data.at[i, "Name"])
      print(data.at[i, "price"])
      i += 1

KeyError 表示不存在名为“价格”的列 - 可能是空格挡住了?

尝试调用data.columns以查看列的确切名称。

我认为问题出在您的列名上。 对我来说它看起来像“正常价格”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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