如何将逗号分隔的数据读取到没有列标题的数据帧中?

时间:2019-09-10 23:09:14

标签: python-3.x pandas

我将逗号分隔的数据集设置为字节,我需要:

  1. 从字节转换为 string
  2. 创建csv(如果有任何方法可以跳转到第3个输出,则可以跳过此操作)
  3. 格式化并读取为数据框,而无需将第一行转换为列名。

(稍后我将使用此df与oracle db输出进行比较。)

输入数据:

val = '-8335,Q1,2017,2002-07-10 00:00:00.0,-,Mr. A,4342000,AnalystA,0,F\n-8336,Q1,2017,2002-07-11 00:00:00.0,-,Mr. B,4342001,Analyst A,0,F\n-8337,Q1,2017,2002-07-10 00:00:00.0,-,Mr. C,4342002,Analyst A,0,F\n'

type(val)

我设法直到第3步,但我的第一行才变成标题。我可以给列标题提供任何值,例如a,b,c,...

#1 Code I tried to convert byte to str
    strval = val.decode('ascii').strip()

#2 code to craete csv. Frist i created blank csv and later appended the data
    import csv
    import pandas as pd


    abc = ""
    with open('csvfile.csv', 'w') as csvOutput:
        testData = csv.writer(csvOutput)
        testData.writerow(abc)

    with open('csvfile.csv', 'a') as csvAppend:
        csvAppend.write(val)

#3 now converting it into dataframe

    df = pd.read_csv('csvfile.csv')


# hdf = pd.read_csv('csvfile.csv', column=none)  -- this give NameError: name 'none' is not defined

输出:

df

enter image description here

2 个答案:

答案 0 :(得分:0)

您可以像这样将其保存为csv文件,而无需将字节转换为字符串或将其保存为文件

如果val是字符串类型,如您的示例,您可以使用bytes代替io.StringIO

io.BytesIO

答案 1 :(得分:0)

根据read_csv文档,只需添加header=None作为参数即可。

df = pd.read_csv('csvfile.csv', header=None)

通过这种方式,标题将被解释为一行数据。如果要排除此行,则需要添加skiprows=1参数:

df = pd.read_csv('csvfile.csv', header=None, skiprows=1)