如何替换连接的数据帧列中的NaN值?

20 浏览
0 Comments

如何替换连接的数据帧列中的NaN值?

我目前有一个pandas的数据框。将第一列和第二列连接在一起得到第三列。\n我尝试了df.fillna(\"\")方法来处理NaN值。然而,我需要摆脱连接列中的NaN值。而上述方法只能摆脱现有的列。\n

import pandas as pd
import numpy as np
data = [[], ['arthur','shelby',''], ['michael','','']]
df = pd.DataFrame(data, columns = ['Name', 'LastName','FullName'])
df['FullName'] = df['Name'].map(str) + ' ' + (df['LastName'].map(str))
df1 = df.fillna("")
print(df1)

\n输出结果的第一行连接列包含NaN NaN。然而,我希望它是\" \" \" \" 查看图像描述。\n有什么方法可以实现这个?

0
0 Comments

问题的原因是在一个连接的DataFrame列中存在NaN值,需要替换掉这些NaN值。解决方法有两种:

1)使用DataFrame的fillna方法,将NaN值替换为空字符串。具体代码如下:

df.fillna('', inplace=True)

2)另外一种方法是使用replace方法,将NaN值替换为空字符串。具体代码如下:

df = df.replace(numpy.nan, '', regex=True)

希望这能帮到你。根据你的描述,你已经尝试了这两种方法,但结果中仍然包含了NaN值。你是否添加了inplace选项?请在你的问题中提供具体的输出结果,我想检查一下。你在问题中添加了结果DataFrame输出的链接,请查看一下。你是否在创建'fullname'变量之前使用了fillna/replace方法?如果是的话,你可以简单地使用replace方法,如`replace('NaN NaN', '')`。这应该会有所帮助。

0
0 Comments

问题:如何从一个连接的数据框列中替换NaN?

问题的原因:问题出现的原因是数据中存在空行,导致有些位置不是NaN而是None。

解决方法:解决方法是在进行任何其他操作之前,先使用fillna函数将NaN替换为空字符串。代码如下:

import pandas as pd
import numpy as np
data = [[], ['arthur','shelby',''], ['michael','','']]
df = pd.DataFrame(data, columns = ['Name', 'LastName','FullName'])
df.fillna("",inplace=True)
df['FullName'] = df['Name'].map(str) + ' ' + (df['LastName'].map(str))
print(df)

补充说明:如果不想读取Excel中的第一行(因为空白),可以使用read_excel(skiprows=[1])来跳过。另外,如果想替换所有NaN为空字符串,可以使用`df.fillna("", inplace=True)`。

0