gpt4 book ai didi

python - 如何用 0 替换空单元格并将字符串更改为 pandas 数据框中可能的整数?

转载 作者:太空狗 更新时间:2023-10-29 18:26:10 25 4
gpt4 key购买 nike

我有一个包含 3000 多列的数据框。数据框中的许多单元格都是空字符串 (' ')。另外,我有很多数值是字符串,但实际上应该是整数。我编写了两个函数来用 0 填充所有空单元格,并在可能的情况下将值更改为整数,但是当我运行它们时,我的数据帧没有任何变化。功能:

def recode_empty_cells(dataframe, list_of_columns):

for column in list_of_columns:
dataframe[column].replace(r'\s+', np.nan, regex=True)
dataframe[column].fillna(0)

return dataframe

def change_string_to_int(dataframe, list_of_columns):

dataframe = recode_empty_cells(dataframe, list_of_columns)

for column in list_of_columns:
try:
dataframe[column] = dataframe[column].astype(int)
except ValueError:
pass

return dataframe

注意:我正在使用 try/except 语句,因为某些列包含某种形式的文本。预先感谢您的帮助。

编辑:

感谢您的帮助,我的第一部分开始工作了。现在所有的空单元格都是 0。这是我此时的代码:

def recode_empty_cells(dataframe, list_of_columns):

for column in list_of_columns:
dataframe[column] = dataframe[column].replace(r'\s+', 0, regex=True)

return dataframe

def change_string_to_int(dataframe, list_of_columns):

dataframe = recode_empty_cells(dataframe, list_of_columns)

for column in list_of_columns:
try:
dataframe[column] = dataframe[column].astype(int)
except ValueError:
pass

return dataframe

但是,这给了我以下错误:OverflowError: Python int too large to convert to C long

最佳答案

您没有保存函数中的更改:

def recode_empty_cells(dataframe, list_of_columns):

for column in list_of_columns:
dataframe[column] = dataframe[column].replace(r'\s+', np.nan, regex=True)
dataframe[column] = dataframe[column].fillna(0)

return dataframe

关于python - 如何用 0 替换空单元格并将字符串更改为 pandas 数据框中可能的整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40531255/

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