Python 创建新列将导致NaN

Python 创建新列将导致NaN,python,pandas,Python,Pandas,我试图在csv文件中创建一个包含3列的新列。但如果其中一列值为NaN,则整个值将更新为NaN,而不是跳过它。 import pandas as pd import numpy as np df = pd.read_csv(r'C:\Users\RAHNA KM\Downloads\Accident_death.csv', skipinitialspace=True) df['Address']= df["ResidenceCity"].astype(str) +" "+ df["Residen

我试图在csv文件中创建一个包含3列的新列。但如果其中一列值为NaN,则整个值将更新为NaN,而不是跳过它。

import pandas as pd
import numpy as np
df = pd.read_csv(r'C:\Users\RAHNA KM\Downloads\Accident_death.csv', skipinitialspace=True)
df['Address']= df["ResidenceCity"].astype(str) +" "+ df["ResidenceCounty"].astype(str) +" "+ df["ResidenceState"]
df.head()

我不知道它为什么会这样做,但用其他东西填充“NaN”可以让你绕过它:

import pandas as pd
import numpy as np
df = pd.read_csv(r'TestData.csv', skipinitialspace=True)
df2 = df.fillna('Unknown')
df2['Address']= df2["ResidenceCity"].astype(str) +" "+ df2["ResidenceCounty"].astype(str) +" "+ df2["ResidenceState"]
df2.head()

我不知道它为什么会这样做,但用其他东西填充“NaN”可以让你绕过它:

import pandas as pd
import numpy as np
df = pd.read_csv(r'TestData.csv', skipinitialspace=True)
df2 = df.fillna('Unknown')
df2['Address']= df2["ResidenceCity"].astype(str) +" "+ df2["ResidenceCounty"].astype(str) +" "+ df2["ResidenceState"]
df2.head()

这应该适用于您,您可以合并多个列并删除或忽略NAN值

df['NewColumn']=pd.concat([df['Column1'].dropna(),df['Column2'].dropna(),df['Column3'].dropna()])

这应该适用于您,您可以合并多个列并删除或忽略NAN值

df['NewColumn']=pd.concat([df['Column1'].dropna(),df['Column2'].dropna(),df['Column3'].dropna()])

你所发现的现象是基于这个基本原理“np.nan实际上是一个浮点型”,阅读可能会对你有所帮助。 例如:

df = pd.DataFrame(
[[np.nan, 'BBB', np.nan],
 ['AAA', np.nan, 'CCC'],
 [np.nan, np.nan, np.nan],
 [np.nan, 'BBB', 'CCC']],
columns=list('ABC'))

# fill NaN with ''
df = df.fillna('')

df['new_col'] = df['A']+df['B']+df['C']

你所发现的现象是基于这个基本原理“np.nan实际上是一个浮点型”,阅读可能会对你有所帮助。 例如:

df = pd.DataFrame(
[[np.nan, 'BBB', np.nan],
 ['AAA', np.nan, 'CCC'],
 [np.nan, np.nan, np.nan],
 [np.nan, 'BBB', 'CCC']],
columns=list('ABC'))

# fill NaN with ''
df = df.fillna('')

df['new_col'] = df['A']+df['B']+df['C']

提供示例数据合并在哪里?我看到的唯一一件事是,您正在创建一个带有地址的新列。我试图将这些列合并到一个新的列地址中。提供示例数据合并在哪里?我唯一看到的是,您正在创建一个带有地址的新列。我试图将这些列合并到一个新的列地址中。这不起作用。我排序了一个问题,但仍在添加NaN值。这不起作用。我排序了一个问题,但仍在添加NaN值。