在NaN中创建新列结果

时间:2019-10-23 11:08:55

标签: python pandas

after merging我试图在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()

3 个答案:

答案 0 :(得分:0)

我不确定为什么要这样做,但是用其他东西填充'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()

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

您发现的现象基于此基本原理“ np.nan实际上是浮点类型”,请阅读Missing data handling可能会对您有所帮助。 示例:

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']