pandas读取csv文件时将多列数据读取为为一列的问题

简介

有时我们在用pandas读取一个不知道什么格式的csv文件时,会出现如下情况,

>>> import pandas as pd
>>> df = pd.read_csv(r'C:\Users\demo\Desktop\12.csv',encoding='gbk',sep='\t')
>>> print(df)

在这里插入图片描述
这时我们发现每个元素均会被两个双引号包裹着,并且所有列在一起被一个一双引号包围着。当我需要提取某几列值是非常不方便,因为在pandas读取后只有一列,实则csv数据不只一列。

思路

1、使用python标准的csv进行读取,生成一个<class ‘_csv.reader’>类对象;
2、实则对reader遍历将会是一行一个列表,这时我们利用pandas重新构造DataFrame,将会将还原为我们需要的数据格式。
具体如下:

import csv
import numpy
import pandas as pd


f = open(r'C:\Users\demo\Desktop\12.csv','r')
reader = csv.reader(f)
print(type(reader))
#for row in reader:
    #print(row[0])
t1 = pd.DataFrame(reader,dtype=str)
#print(t1)
print(t1.info())
#print(t1.head(5))

#运行结果
在这里插入图片描述
这时将会重新构造一个DataFrame,便于我们进行数据分析。

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 可以使用pandas库中的read_csv函数读取csv文件,并使用DataFrame的索引来获取某一数据。例如,假设csv文件名为data.csv,其中包含名为“col1”和“col2”的两数据,可以使用以下代码获取“col1”数据: ```python import pandas as pd # 读取csv文件 df = pd.read_csv('data.csv') # 获取“col1”数据 col1_data = df['col1'] ``` 其中,df是一个DataFrame对象,可以使用索引来获取某一数据。在上述代码中,使用df['col1']获取“col1”数据,并将其赋值给col1_data变量。 ### 回答2: Pandas是Python中的一个数据处理库,可以方便地读取和处理各种数据读取csv文件的某一数据也是Pandas的一项常用功能。 首先,在读取csv文件时,我们可以使用Pandas的read_csv()函数。这个函数有很多参数可以供我们设置,比如文件路径、编码方式、分隔符等等,在读取csv文件时,我们要特别注意一下charset和sep这两个参数的设置。 接下来,当我们读取csv文件成功后,需要根据需要获取我们需要的某一数据。查看数据数,使用的方法是用Pandas的columns属性。通过使用这个属性,我们可以把数据的所有名转化成一个list,然后根据名所在的位置,得到需要读取的某一。 最后,我们可以使用Pandas的iloc[]方法,在DataFrame中选择需要的某一。iloc[]方法可以根据行和的数字位置来获取DataFrame中的数据,具体来说,它需要两个索引值,一个是行的索引值,另一个是的索引值。我们可以用这个方法来获取我们需要的某一数据。 下面是一个基于Pandas读取csv文件某一数据的示例代码: ```python import pandas as pd # 读取csv文件 data = pd.read_csv('example.csv', sep=',', encoding='utf8') # 查看数据数 print("data的数为:{}".format(len(data.columns))) print("data的所有名为:{}".format(list(data.columns))) # 根据需要获取某一数据 column_name = "example_column" column = data[column_name] # 打印输出某一数据 print("需要获取的数据为:{}".format(column)) # 如果根据名无法获取到需要的数据,可以尝试使用iloc[]方法 column_name_index = list(data.columns).index(column_name) column = data.iloc[:, column_name_index] # 打印输出某一数据 print("需要获取的数据为:{}".format(column)) ``` 以上便是基于Pandas读取csv文件某一数据的方法,通过使用Pandas的多种方法,我们可以轻松地获取到需要的数据。 ### 回答3: Pandas是一个数据分析库,它可以轻松的读取和处理各种数据文件,比如CSV文件。在Pandas读取CSV文件时,可以使用read_csv函数读取整个文件,也可以使用read_csv函数仅读取CSV文件中的某一数据读取CSV文件中的某一数据,可以使用Pandas中的loc方法。首先,读取CSV文件到一个DataFrame中: ```python import pandas as pd # 读取CSV文件 df = pd.read_csv('example.csv') ``` 接着,使用DataFrame的loc方法获取指定数据: ```python # 读取指定数据 column_data = df.loc[:, 'column_name'] ``` 其中,`'column_name'`是需要读取名。如果需要读取多个数据,可以在loc方法的第二个参数中指定需要读取表: ```python # 读取多个数据 column_data = df.loc[:, ['column_name_1', 'column_name_2']] ``` 读取CSV文件某一数据后,我们可以对这些数据进行各种操作,比如计算平均值、绘制图表等。例如,计算CSV文件中某一的平均值: ```python # 计算平均值 mean_value = df['column_name'].mean() ``` 在使用Pandas读取CSV文件时,还可以进行各种数据类型转换和缺失值处理。例如,将读取到的数据转换为指定的数据类型: ```python # 将数据转换为指定的数据类型 df['column_name'] = df['column_name'].astype(float) ``` 处理缺失值可以使用fillna方法,将缺失值填充为指定的值: ```python # 处理缺失值 df['column_name'].fillna(0, inplace=True) ``` 其中,`0`是填充的值,`inplace=True`表示对原DataFrame进行修改,而不是返回一个新的DataFrame。 总之,Pandas是一个强大的数据分析库,使用起来非常方便。读取CSV文件中的某一数据只是其中的一个功能,使用Pandas可以进行各种复杂的数据处理和分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值