在同一段中转换具有 header 和值的 csv
Converting a csv with header and value in same segment
我有一个 CSV 类型文件,在同一段中有 header 和值,如下所示:
"field1=value1", "field2=value2", etc
有没有办法将字段拉到 header 并将值作为下面的行?
我目前有:
df = pd.read_csv(file, sep='=')
df.to_csv(file + ".csv", index=None)
上面的输出是:
field1=value1, field2 value2, etc
我想要的输出:
field1, field2, etc
value1, value2, etc
value, value, etc
提前致谢!
您可以尝试这样的操作:
import csv
data = []
fieldnames = set()
with open('input.csv') as f_input:
csv_input = csv.reader(f_input, skipinitialspace=True)
for row in csv_input:
d_row = {}
for entry in row:
if entry: # skip empty entries
key, value = entry.split('=')
d_row[key] = value
fieldnames.add(key)
data.append(d_row)
with open('output.csv', 'w', newline='') as f_output:
csv_output = csv.DictWriter(f_output, fieldnames=sorted(fieldnames))
csv_output.writeheader()
csv_output.writerows(data)
或创建数据框:
df = pd.DataFrame(data, columns=sorted(fieldnames))
print(df)
这使用标准 csv.reader()
读取每一行,然后将每个字段拆分为键值对并存储到行字典中,然后将其添加到 data
。一组用于学习所有正在使用的字段名。
因此,如果您输入的 CSV 文件是:
"field1=value1","field2=value2"
"field1=value3","field2=value4"
output.csv
文件将是:
field1,field2
value1,value2
value3,value4
我有一个 CSV 类型文件,在同一段中有 header 和值,如下所示:
"field1=value1", "field2=value2", etc
有没有办法将字段拉到 header 并将值作为下面的行? 我目前有:
df = pd.read_csv(file, sep='=')
df.to_csv(file + ".csv", index=None)
上面的输出是:
field1=value1, field2 value2, etc
我想要的输出:
field1, field2, etc
value1, value2, etc
value, value, etc
提前致谢!
您可以尝试这样的操作:
import csv
data = []
fieldnames = set()
with open('input.csv') as f_input:
csv_input = csv.reader(f_input, skipinitialspace=True)
for row in csv_input:
d_row = {}
for entry in row:
if entry: # skip empty entries
key, value = entry.split('=')
d_row[key] = value
fieldnames.add(key)
data.append(d_row)
with open('output.csv', 'w', newline='') as f_output:
csv_output = csv.DictWriter(f_output, fieldnames=sorted(fieldnames))
csv_output.writeheader()
csv_output.writerows(data)
或创建数据框:
df = pd.DataFrame(data, columns=sorted(fieldnames))
print(df)
这使用标准 csv.reader()
读取每一行,然后将每个字段拆分为键值对并存储到行字典中,然后将其添加到 data
。一组用于学习所有正在使用的字段名。
因此,如果您输入的 CSV 文件是:
"field1=value1","field2=value2"
"field1=value3","field2=value4"
output.csv
文件将是:
field1,field2
value1,value2
value3,value4