我有一个 .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/