gpt4 book ai didi

python - 在 csv 文件中添加填充以使数据框可供 pandas 读取

转载 作者:行者123 更新时间:2023-12-01 01:11:48 24 4
gpt4 key购买 nike

我在 csv 文件中有多个数据(数据结构相似但不相同),某些行的行和列大小不同。

例如,每个 csv 文件的前三行具有不同的列数,即:

----------------
Table | Format |
----------------
Code | Label | Index |
-----------------------------------------
a | b | c | d | e |
-----------------------------------------

这看起来确实有点丑,而且很难像 pandas 那样读入并使用。

我想制作表格,以便它能够识别文件中列的最大长度,并在空白处添加任何填充以使尺寸相等。IE。

-----------------------------------------
Table | Format | pad | pad | pad |
-----------------------------------------
Code | Label | Index | pad | pad |
-----------------------------------------
a | b | c | d | e |
-----------------------------------------

到目前为止,我研究了读取 pandas 并向 csv 文件添加标题,但由于每个 csv 文件的最大列数各不相同,所以我有点陷入困境。

任何帮助或指示将不胜感激!

最佳答案

如果您的列分隔符是逗号,则只需在每行末尾插入适当数量的逗号即可进行填充。使用 read_csv pandas 会将填充的值读取为 NaN。

with open('/path/to/data.csv', 'r') as f:
data = f.read().split()

# Count the the number of columns in each line
cols = [row.count(',')+1 for row in data]
# Find the widest row
max_cols = max(cols)

# Loop over lines in text
for id, row in enumerate(data):
# Pad extra columns when necessary
if cols[id] < max_cols:
data[id] += (max_cols - cols[id]) * ','

# Write the data out
with open('/path/to/pad_data.csv', 'w') as f:
f.write('\n'.join(data))

设置一些测试数据:

data = '1,2,3\n4,\n5,6,7,8,9\n'
print(data)
#1,2,3
#4,
#5,6,7,8,9

应用上面的方法可以得到:

print('\n'.join(pad_data))
#1,2,3,,
#4,,,,
#5,6,7,8,9

关于python - 在 csv 文件中添加填充以使数据框可供 pandas 读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54791292/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com