如何在 pandas 列中将 0 替换为 None ?

问题描述 投票:0回答:1

这似乎是一个微不足道的问题,但由于某种原因,我无法让代码工作。

首先对于上下文,column[B] 是一个对象数据类型列,包含 0、“A”、“B”。

A B
0
0
A
B

我不想在该列中出现任何 0,所以我尝试了以下操作。

df['A'] = pd.Series(position).map({ 0: np.nan}) 
df['A'] = np.where(df['B'] ==0, np.nan, 1)
df['A'] = df['B'].replace(0, np.nan)
df['A'] = df['B'].replace(0, None)
df['A'] = df['B'].replace(np.nan, None)
df['A'] = df['B'].astype(object).replace('0', None)

使用 df.to_excel("ABC.xlsx") 将数据框保存到 Excel 后,0 将保留在 ["A"] 列中。当我运行 print(df["A"]) 时也是如此。我错过了什么吗?

python pandas numpy series
1个回答
0
投票

我了解您想要将“B”列中的值 0 替换为“A”列中的 NaN(无)。但是,可能会出现问题,因为“B”列中的值 0 是整数类型,而您尝试将其替换为浮点数类型的 NaN。

import pandas as pd
import numpy as np

# Sample DataFrame
df = pd.DataFrame({'B': [0, 0, 'A', 'B']})

# Replace 0 with NaN in column 'A'
df['A'] = df['B'].replace(0, np.nan)

# Print DataFrame to check
print(df)

# Save DataFrame to Excel
df.to_excel("ABC.xlsx", index=False)

© www.soinside.com 2019 - 2024. All rights reserved.