如何将pandas数据框转换为字节字符串?

3

我有一个名为df的pandas数据框,如下所示:

enter image description here

我想将此数据框转换为类型为bytes的字节字符串,即当我输入type(df)时,它应该给我一个Bytes输出,而不是pandas.core.frame.DataFrame。输出应如下所示:

b'Age,Height,Weight,City\r\n23,5.45,67,New York\r\n'

df是使用pandas.DataFrame()构建的,因此它是一个pandas.core.frame.DataFrame。您能否提供一个最小工作示例来展示您的输入数据?您需要对数据框的列进行转换/连接以生成您定义的输出。 - paloman
如果您将此数据框作为csv文件,并使用data = open('df.csv', 'rb').read()读取它,则会以b'Age,Height,Weight,City\r\n23,5.45,67,New York\r\n'的形式提供数据,这正是我想要的,而不是从csv中获取。 - Nikhil Mangire
那么你可以将数据框写入temp.csv文件中 'df.to_csv("temp.csv")',然后按照你所展示的方式读取它吗?此外,在https://dev59.com/_lsW5IYBdhLWcg3wuJGd中似乎有类似的东西。 - paloman
这不是一个解决方案。 - Nikhil Mangire
我知道,我只是想澄清问题,因为你没有提供一个可行的例子。 - paloman
1个回答

6
您可以将您的数据帧转换为 CSV 字符串,然后再转换为字节:
bytes(df.to_csv(line_terminator='\r\n', index=False), encoding='utf-8')

你的答案几乎正确99%,但是我从你的代码得到的输出也在开头抛出了逗号,这不是我所期望的。你的代码输出是——> b'年龄,身高,体重,城市\r\n23,5.45,67,纽约\r\n' - Nikhil Mangire
我想要的输出是 -----> b'年龄,身高,体重,城市\r\n23,5.45,67,纽约\r\n' - Nikhil Mangire
@NikhilMangire 将 index=False 传入 to_csv。请查看更新。 - Quang Hoang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接