python - 从 pandas python 写入 csv 时,有没有办法删除空单元格(空单元格的逗号)?
问题描述
例如我有一个这样的df
一个 | 乙 | C | D | 乙 | F |
---|---|---|---|---|---|
1 | 2 | 3 | 4 | ||
1 | 2 | ||||
1 | 5 | 9 | 5 | 3 | 1 |
5 |
当我将其转换为 csv 时,我得到一个 csv,其中包含“,”用于空白单元格。IE
1,2,3,4,,,
1,2,,,,,
1,5,9,5,3,1
5,,,,,,
有没有办法让我得到填充的单元格并删除带有空单元格的逗号?预期输出为:
1,2,3,4
1,2
1,5,9,5,3,1
5
这是一个包含数百万行和数千列的大型数据集。因此试图看看我是否可以删除不必要的空格。
解决方案
to_csv()
定义为确保考虑每一列,因此将分隔空列- 输出
to_csv()
到缓冲区然后strip(",")
删除尾随逗号 - 将其输出到文件
import pandas as pd
import io
import numpy as np
from pathlib import Path
df = pd.DataFrame(
{
"A": [1, 1, 1, 5],
"B": [2.0, 2.0, 5.0, np.nan],
"C": [3.0, np.nan, 9.0, np.nan],
"D": [4.0, np.nan, 5.0, np.nan],
"E": [np.nan, np.nan, 3.0, np.nan],
"F": [np.nan, np.nan, 1.0, np.nan],
}
)
with open(Path.cwd().joinpath("special.csv"), "w") as f:
f.write("\n".join([l.strip(",") for l in df.to_csv(index=False, header=None).split("\n")]))
推荐阅读
- python - 如何防止 Sentry 针对特定类型的错误对错误/警报进行分组?
- sql-server - SQL Server如何处理角色权限和用户权限不一致的问题
- oracle - 搜索字符串以匹配 Oracle SQL 中视图中所有现有列和行中的数据
- java - maven-cargo2-plugin 如何识别我的 Spring Boot 应用程序已经运行了嵌入式 Tomcat?
- haskell - JSON Payload POST 请求总是超时 AWS ApiGateway
- string - 在 Clojure 的函数中返回一个字符串
- python - Google StackDriver将日志与父请求python 3相关联
- .net - 如何使用 StackExchange.Redis 禁用证书验证?
- python - 从 3D 数组中获取 2D 索引?
- ios - iOS 字体名称列表