熊猫-Nan's不会被udf取代

时间:2019-02-06 16:24:38

标签: python pandas

我有一个数据框,其中有多列包含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)

我不确定我的功能出了什么问题。

  1. 我正在做的就是将数据类型转换为字符串
  2. 然后用“某些字符串”替换np.nan。
  3. 然后将“ .0”替换为“”

1 个答案:

答案 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

不确定正则表达式部分,我没有任何数据可以尝试您正在做的事情。