Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否有可能将NaN值作为空白写入txt文件?_Python_Regex_Pandas_Nan - Fatal编程技术网

Python 是否有可能将NaN值作为空白写入txt文件?

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

我有以下带有列的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: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)