Python 是否有可能将NaN值作为空白写入txt文件?
我有以下带有列的df:Python 是否有可能将NaN值作为空白写入txt文件?,python,regex,pandas,nan,Python,Regex,Pandas,Nan,我有以下带有列的df: DueDate 0 <cbc:DueDate>2020-10-18</cbc:DueDate> 1 <cbc:DueDate>2020-01-08</cbc:DueDate> 2 NaN 3 NaN Streetname 0 <cbc:StreetName>Xerox GmbH</cbc:StreetName> 1 <cbc
DueDate
0 <cbc:DueDate>2020-10-18</cbc:DueDate>
1 <cbc:DueDate>2020-01-08</cbc:DueDate>
2 NaN
3 NaN
Streetname
0 <cbc:StreetName>Xerox GmbH</cbc:StreetName>
1 <cbc:StreetName>Rompslomp.nl B.V.</cbc:StreetName>
2 <cbc:StreetName>STAS picture</cbc:StreetName>
3 <cbc:StreetName>Rex International B.V.</cbc:StreetName>
PostalAdress
0 </cac:PostalAddress>
1 </cac:PostalAddress>
2 </cac:PostalAddress>
3 </cac:PostalAddress>
Name: PostalAdressClose, dtype: object
我有个问题。。当值为NaN时,我希望跳过NaN,但是当我使用以下命令将NaN转换为空字符串时:
df3 = df3.replace(np.nan, '', regex=True)
我在输出文件中得到白线。。当发生NaN时,所需的输出是下一列写入文件(不带空格)的直接继续。你能帮我吗?假设你有这个数据帧:
import numpy as np
import pandas as pd
df = pd.DataFrame({'DueDate': ['2020-01-01','2020-01-02',np.nan],
'Streetname':['Main Street 1', 'Main Street 2', 'Main Street 3']
})
df
>>>
DueDate Streetname
0 2020-01-01 Main Street 1
1 2020-01-02 Main Street 2
2 NaN Main Street 3
然后,您可以像使用df=df.replace(np.NaN,,,regex=True)一样替换NaN
之后,我建议您执行一个apply
功能,并创建一个新的序列以形成您的队形
z = df.apply(lambda x: x['Streetname'] + ' ' + x['DueDate'], axis=1)
稍后您可以调用z.to_string(index=False)
并将其写入您的文件。如果您不喜欢换行符,可以使用z.to\u字符串(index=False)替换它们。替换('\n','')
。我认为这将稍微清理您的代码,因为您不必遍历所有行
我真的希望这能帮助你,回答你的问题
import numpy as np
import pandas as pd
df = pd.DataFrame({'DueDate': ['2020-01-01','2020-01-02',np.nan],
'Streetname':['Main Street 1', 'Main Street 2', 'Main Street 3']
})
df
>>>
DueDate Streetname
0 2020-01-01 Main Street 1
1 2020-01-02 Main Street 2
2 NaN Main Street 3
z = df.apply(lambda x: x['Streetname'] + ' ' + x['DueDate'], axis=1)