使用Python编辑CSV文件,为每个字符添加字符

2024-04-24 11:04:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个.csv文件中有这个数据集: https://www.dropbox.com/s/2kzpzkhoiolhnlc/output.csv?dl=0

19,3,12
3
12
16,4
26,15,8,3
2
8
15
20
12,25,20,2,16
12,16
12,25
2,16
1,12
16,4
11,19,25,20
11,20,16,21
25,20,21
.....

对于每一行,如果数字小于51,我需要添加吗?直到那排有51个字符。例如,在第一行我有19,3,12,所以我必须加48?有这样一行:19,3,12,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? 在第二行我只有一个数字,所以我必须加50?,其他行也是一样。你能帮帮我吗

编辑:我尝试过,但没有成功,它只是在一些行中添加了“”:

import pandas as pd
df = pd.read_csv('output.csv', sep=';')
df = df.fillna('?')
df.to_csv('sorted2.csv', index=False)

Tags: 文件csv数据httpscom编辑dfoutput
2条回答

使用pandas读取文件并设置所需的列数。下面的代码读入一个文件并分配n列。默认情况下,额外元素的值为np.nan

df.read_csv('file', names=range(n))

如果你想让它们有一个不同的值,你可以给它赋值

df.fillna(value, inplace = True)

然后您可以将数据帧写回文件,它将具有您想要的形状

df.to_csv('file')

如果你想的话,你可以通过简单的文本文件操作来完成,而不需要使用pandas或csv模块

import csv
with open('source.csv') as f:
    with open('result.csv', 'w') as fw:
        for line in f:
            line = line.strip() + (',?' * (50 - line.count(',')))
            fw.write(line + '\n')   

相关问题 更多 >