在Python中用空格替换nan

时间:2018-09-25 08:42:46

标签: python pandas numpy

下面是我的数据框:

Id,ReturnCreated,ReturnTime,TS_startTime
O108808972773560,Return Not Created,nan,2018-08-23 12:30:41
O100497888936380,Return Not Created,nan,2018-08-18 14:57:20
O109648374050370,Return Not Created,nan,2018-08-16 13:50:06
O112787613729150,Return Not Created,nan,2018-08-16 13:15:26
O110938305325240,Return Not Created,nan,2018-08-22 11:03:37
O110829757146060,Return Not Created,nan,2018-08-21 16:10:37

我想用Blanks代替nan。尝试了以下代码,但无法正常工作。

import pandas as pd
import numpy as np
df = pd.concat({k:pd.Series(v) for k, v in ordercreated.items()}).unstack().astype(str).sort_index()
df.columns = 'ReturnCreated  ReturnTime  TS_startTime'.split()
df1 = df.replace(np.nan,"", regex=True)
df1.to_csv('OrderCreationdetails.csv')

请帮助我了解我要去哪里以及如何解决该问题。

3 个答案:

答案 0 :(得分:2)

您应该尝试使用DataFrame.fillna()方法

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.fillna.html

在您的情况下:

df1 = df.fillna("")

我认为应该可以工作

答案 1 :(得分:1)

我认为nan是字符串,因为.astype(str)。因此需要:

df1 = df.replace('nan',"")

答案 2 :(得分:1)

您可以使用df.fillna("")(我认为这样做会更好),也可以简单地将这些值替换为空白

df1 = df.replace('NaN',"")