简体   繁体   中英

How do I combine two columns within a dataframe in Pandas?

Say I have two columns, A and B, in my dataframe:

A  B
1  NaN
2  5
3  NaN
4  6

I want to get a new column, C, which fills in NaN cells in column B using values from column A:

A  B   C
1  NaN 1
2  5   5
3  NaN 3
4  6   6

How do I do this?

I'm sure this is a very basic question, but as I am new to Pandas, any help will be appreciated!

You can use combine_first :

df['c'] = df['b'].combine_first(df['a'])

Docs: http://pandas.pydata.org/pandas-docs/version/0.17.0/generated/pandas.Series.combine_first.html

You can use where which is a vectorized if/else:

df['C'] = df['A'].where(df['B'].isnull(), df['B'])

   A   B  C
0  1 NaN  1
1  2   5  5
2  3 NaN  3
3  4   6  6
df['c'] = df['b'].fillna(df['a'])

那么.fillna将会做的是它将填充数据框中的所有Nan值我们可以传递任何值到这里我们传递值df ['a']所以这个方法将相应的'a'值放入'b'的南数值和最终答案将在'c'中

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM