我将逗号分隔的数据集设置为字节,我需要:
(稍后我将使用此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
答案 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)