我有一个数据框,其中有多列包含nan,并通过这样的函数将其放入
def Change_Data_Type_DataFrame (AnyPandasDataFrame):
for i in range(0, AnyPandasDataFrame.shape[1]):
Required_Column_Name = (AnyPandasDataFrame.columns[i])
AnyPandasDataFrame[Required_Column_Name] = AnyPandasDataFrame[Required_Column_Name].astype(str)
print(LookUp_df)
AnyPandasDataFrame[Required_Column_Name] = AnyPandasDataFrame[Required_Column_Name].replace(np.nan,"FILLINGTHENAS")
print(LookUp_df)
AnyPandasDataFrame[Required_Column_Name] = AnyPandasDataFrame[Required_Column_Name].astype(str).replace('\.0', '', regex=True)
return (AnyPandasDataFrame)
我不确定我的功能出了什么问题。
答案 0 :(得分:1)
首先,您可以一步转换DataFrame
的所有列:
df = df.astype(str)
然后,您可以使用fillna
方法替换NaN
中的DataFrame
:
df = df.fillna("FILLINGTHENAS")
您的功能将如下所示:
def change_data_type(df):
df = df.astype(str)
df = df.fillna("FILLINGTHENAS")
for column in df.columns:
df[column] = df[column].replace('\.0', '', regex=True)
return df
不确定正则表达式部分,我没有任何数据可以尝试您正在做的事情。