python - 如何使用 pandas 更改现有 csv 的单列

标签 python pandas dataframe

我有一个 .csv 文件,可以使用 pd.read_csv() 读取该文件。 在这个文件中,我有 SomeBoolean 列,我需要使用新逻辑进行更新。 但是,当我使用 pd.to_csv() 再次写入文件时,其他一些列值发生了更改,例如有时NaN 列有一些空值,在读取 csv 时被解释为 NaN,但随后它们也被写为 NaN 而不是空值。

有没有办法可以更新 SomeBoolean 列,而不会意外影响其他列,例如 sometimesNaN 列?

Index   Date         SomeBoolean    Values        sometimesNaN
0       2021-05-18   False          216.351155    NaN
1       2021-05-18   False          876.222176    NaN
2       2021-05-18   False          767.214479    NaN

最佳答案

您可以考虑让 Pandas 不将 sometimesNaN 列中的空值解释为 NaN,这样写回时就不会覆盖原来的空值。

要实现此目的,您可以在 pd.read_csv() 期间读取 csv 时指定参数 keep_default_na=False打电话。

keep_default_na : bool, default True

Whether or not to include the default NaN values when parsing the data. Depending on whether na_values is passed in, the behavior is as follows:

If keep_default_na is True, and na_values are specified, na_values is appended to the default NaN values used for parsing.

If keep_default_na is True, and na_values are not specified, only the default NaN values are used for parsing.

If keep_default_na is False, and na_values are specified, only the NaN values specified na_values are used for parsing.

If keep_default_na is False, and na_values are not specified, no strings will be parsed as NaN.

请注意,此行为适用于所有列。因此,如果您在其他列中有 NaN 值,并且希望 Pandas 在读取 csv 时将空值解释为 NaN,您可能无法使用此功能。

关于python - 如何使用 pandas 更改现有 csv 的单列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67599147/

相关文章:

python - Pandas - 如何根据正则表达式过滤行

python - 使用 PyDev 的 blender

python - 当客户端不干净地退出时,如何检测服务器上 Python aiohttp web 套接字的关闭

python - 递归 glob 不返回文件

Python:如何避免循环在 Pandas 数据框中进行转换?

python - 创建具有相对频率的直方图

python - 为什么 pandas dataframe 消耗的 RAM 比原始文本文件的大小多得多?

r - 使用 native 管道 |> 在 base R 中选择多列的方法?

python - 如何在 Bokeh 中将 "group by"数据帧绘制为条形图

python - 如何在 pandas 中交叉表的特定行和列上执行计算?