Juh*_*o M 2 python csv dataframe jupyter-notebook
我有这样的字符串输出:
Gender,Age,Weight,Height
Male, 55, 82, 180
Female, 34,55,167
Female,44,67,182
Male,81,73,175
Male,44,34,87,185
Run Code Online (Sandbox Code Playgroud)
从此输出生成 CSV 文件的最简单方法是什么?我尝试了一些 StringIO 方法,但无法让它们在 Python 3.6.0 中工作。
这是我的方法,我针对 Python 3.6 进行了测试:
import csv
from io import StringIO
my_string = """
Gender,Age,Weight,Height
Male, 55, 82, 180
Female, 34,55,167
Female,44,67,182
Male,81,73,175
Male,44,34,87,185
"""
buffer = StringIO(my_string)
reader = csv.reader(buffer, skipinitialspace=True)
with open('string2csv.csv', 'w') as out_file:
writer = csv.writer(out_file)
writer.writerows(reader)
Run Code Online (Sandbox Code Playgroud)
string2csv.csv 文件的内容:
Gender,Age,Weight,Height
Male,55,82,180
Female,34,55,167
Female,44,67,182
Male,81,73,175
Male,44,34,87,185
Run Code Online (Sandbox Code Playgroud)
skipinitialspace=True来去掉这些空格。writerows(复数)而不是writerow(单数),我可以编写更少的代码如果您不想使用 StringIO,那么我们可以拆分行,将它们输入csv.reader并获得相同的结果:
my_string = """
Gender,Age,Weight,Height
Male, 55, 82, 180
Female, 34,55,167
Female,44,67,182
Male,81,73,175
Male,44,34,87,185
"""
reader = csv.reader(my_string.splitlines(), skipinitialspace=True)
with open('string2csv.csv', 'w') as out_file:
writer = csv.writer(out_file)
writer.writerows(reader)
Run Code Online (Sandbox Code Playgroud)