【问题标题】:Change delimiter in csv file - Python更改 csv 文件中的分隔符 - Python
【发布时间】:2020-07-06 17:09:35
【问题描述】:

我在 google colab (python) 中有一个名为“student-mat.csv”的 csv 文件 当我打印它时,它看起来像这样: 学校;性别;年龄;地址;家庭规模;Pstatus;Medu;Fedu;Mjob;Fjob;原因;监护人;旅行时间;学习时间;失败;schoolsup;famsup;付费;活动;托儿所;更高;互联网;浪漫;家庭;空闲时间; goout;Dalc;Walc;健康;缺勤;G1;G2;G3

分隔符错误,我不知道如何更改它,而不是像这样编写简单的代码:

df = pd.read_csv('student-mat.csv')

我必须这样写:

df = pd.read_csv(io.StringIO(uploaded['student-mat.csv',delimiter=';'].decode('utf-8')))
print(df.head())

这是因为我上传文件的方式不同。当我键入该代码时,它是不正确的,因为分隔符位于错误的位置。它给出了一个简单的SyntaxError: invalid syntax

【问题讨论】:

  • 你应该解释一下你当前的尝试有什么不好的地方。顺便说一句,您应该避免重新分配csv.writer。下次尝试使用该功能时,会出现错误。看起来你已经看到了这个错误...
  • 根据 MarianD 的回答...我想说的是,您在读取文件时需要指明分隔符... :)
  • @hoop_coop,您是否尝试过使用seppd.read_csv 参数并指定您的分隔符?看看更多选项here
  • @JatinBansal 感谢您的建议,但我最终找到了一个更简单的答案(我只是在 python 中开始,所以我不好)。感谢您抽出宝贵时间回答,希望您有一个美好的白天/夜晚:)

标签: python pandas csv io delimiter


【解决方案1】:

你为什么要把自己的生活复杂化?只需使用

df = pd.read_csv('student-mat.csv', sep=';', encoding='utf-8')

pandas.read_csv

【讨论】:

  • 我这样做并得到以下错误: EmptyDataError: No columns to parse from file。这可能是因为我正在使用 google colab 并使用以下方式导入文件: from google.colab import files Upload = files.upload()
  • 显示 .csv 文件的前 2-3 行,或数一数其中的分号数。
  • 如果您使用的是 colab,那么它必须将文件存储在 sample_data 文件夹中。执行ls 并检查您的文件在哪里。然后做!cat path/<file_name>
  • @MarianD 我已经编辑了问题,你可以在那里看到
  • @Pygirl,通常是这样,但我使用此代码导入 {from google.colab import files Upload = files.upload().}
【解决方案2】:

这里需要放置分隔符:

df = pd.read_csv(io.StringIO(uploaded['student-mat.csv'].decode('utf-8')), delimiter=';')

print(df.head())

然后在 pandas DataFrame 中返回它。

【讨论】:

    猜你喜欢
    • 2015-10-12
    • 2020-11-25
    • 1970-01-01
    • 2021-12-17
    • 2023-04-03
    • 2017-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多