当前位置: 首页 > 面试题库 >

在read_csv之后在pandas数据框中选择列时出现关键错误

夏侯腾
2023-03-14
问题内容

我正在尝试将CS​​V文件读入pandas数据框并选择一列,但始终收到关键错误。

该文件已成功读取,我可以在iPython笔记本中查看数据框,但是当我想选择除第一个列以外的任何列时,它将引发关键错误。

我正在使用此代码:

import pandas as pd

transactions = pd.read_csv('transactions.csv',low_memory=False, delimiter=',', header=0, encoding='ascii')
transactions['quarter']

这是我正在处理的文件:https
:
//www.dropbox.com/s/81iwm4f2hsohsq3/transactions.csv?dl=0

谢谢!


问题答案:

使用,sep='\s*,\s*'以便您可以处理列名中的空格:

transactions = pd.read_csv('transactions.csv', sep=r'\s*,\s*',
                           header=0, encoding='ascii', engine='python')

或者,您可以确保CSV文件中没有未加引号的空格,并使用命令(未更改)

证明:

print(transactions.columns.tolist())

输出:

['product_id', 'customer_id', 'store_id', 'promotion_id', 'month_of_year', 'quarter', 'the_year', 'store_sales', 'store_cost', 'unit_sales', 'fact_count']


 类似资料:
  • 问题内容: 我在不同的列中有数据,但是我不知道如何提取数据以将其保存在另一个变量中。 如何选择然后将其保存到df1中? 我试过了 似乎没有任何工作。 问题答案: 列名(字符串)无法按照你尝试的方式进行切片。 在这里,你有两个选择。如果从上下文中知道要切出哪些变量,则可以通过将列表传递给语法来仅返回那些列的视图。 或者,如果需要对它们进行数字索引而不是按其名称进行索引(例如,你的代码应在不知道前两列

  • 问题内容: 我的Pandas Dataframe框架看起来像这样 我希望数据位于9到10个小时之间……如果有人从事过此类工作,那将非常有帮助。 问题答案: In [7]: index = date_range(‘20131009 08:30’,‘20131010 10:05’,freq=‘5T’)

  • 基于单个值/标签的切片 基于一个或多个级别的多个标签的切片 布尔条件和表达式的过滤 哪些方法适用于什么情况 为简单起见的假设: 输入数据表没有重复的索引键 下面的输入数据只有两个级别。(此处所示的大多数解决方案都概括为N个级别) 问题2b 我如何获得级别“二”中对应于“t”和“w”的所有值? 如何从检索横截面,即具有索引特定值的单行?具体来说,如何检索的横截面,由 如何选择与和相对应的两行?

  • 问题内容: 我想为某个列(例如column)选择一个范围。我想选择-0.5到+0.5之间的所有值。如何做到这一点? 我希望使用 但这(自然)给出了ValueError: 我试过了 但这全部输出了。 正确的输出应该是 在pandas数据框列中查找值范围的正确方法是什么? 编辑:问题 使用与 将是之间的区别 和不平等之类的 ? 问题答案: 使用有严格的不平等: 该参数确定是否包括端点(:,:)。这适用

  • 问题内容: 可以说我有以下熊猫数据框: 我可以根据特定的值进行子集化: 但是如何根据值列表进行子集设置呢?-这样的东西: 问题答案: 您可以使用方法: 并得到相反的用法:

  • 问题内容: 我正在尝试将csv文件中的数据读取到pandas数据框中,并访问第一列“日期” 产生以下结果 如果我尝试访问“打开”或“音量”之类的任何其他列,则它按预期运行 问题答案: 您很可能在文件的开头有一个额外的字符,该字符位于您的第一列名称之前。只需将您的输出复制/粘贴到非Unicode控制台生成。