微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

数据框中的列未拆分

如何解决数据框中的列未拆分

我遇到了一个问题,当我对dataset.csv执行describe()head()时,数据集输出显示其中没有列。而且我已经尝试使用split()strip(),但仍然相同

这是我的代码

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import os
from sklearn import preprocessing
from sklearn.model_selection import train_test_split
import csv

directory = os.path.join('drive/My Drive/BCML/winequality-white.csv')

text_file = open(directory,"r")
lines = text_file.readlines()

line = line.strip(";")
line = line.strip()

parsed_values = [] 

for index,line in enumerate(lines):
  split_columns = line.split(";")


  if index == 0:
    continue
  
  parsed_values.append([float(split_columns[0]),float(split_columns[1]),float(split_columns[2]),float(split_columns[3]),float(split_columns[4]),float(split_columns[5]),float(split_columns[6]),float(split_columns[7]),float(split_columns[8]),float(split_columns[9]),float(split_columns[10]),int(split_columns[11])])

dataset = pd.read_csv(directory)

输出为:

enter image description here

并且:

enter image description here

其他: 我只需要针对这种情况使用该数据集。因此,我无法在Internet上搜索并替换为相同的数据集。当我使用Excel打开.csv文件时,其结构正常。而且我不知道为什么当我将split循环中的for更改为split_columns = line.split(",")时,会出现此错误

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-16-fb83c4e7dfad> in <module>()
      8     continue
      9 
---> 10   parsed_values.append([float(split_columns[0]),int(split_columns[11])])
     11 
     12 print("Jumlah data (parsed) ",len(parsed_values))

ValueError: Could not convert string to float: '7;0.27;0.36;20.7;0.045;45;170;1.001;3;0.45;8.8;6\n'

我非常感谢我能获得的一切帮助

解决方法

好像您在csv文件中有一个自定义分隔符。您只需添加一个sep参数并将其设置为;像这样

dataset = pd.read_csv(directory,sep=";")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。