合并熊猫数据框中的列

时间:2018-10-09 08:09:45

标签: python pandas

我有以下数据框:

df = pd.DataFrame({
         'user_a':['A','B','C',np.nan],
         'user_b':['A','B',np.nan,'D']
})

current df

我想创建一个名为user的新列,并得到结果数据框:

complete df

许多users最好的方法是什么?

2 个答案:

答案 0 :(得分:3)

使用前向填充缺失值,然后按iloc选择最后一列:

df = pd.DataFrame({
         'user_a':['A','B','C',np.nan,np.nan],
         'user_b':['A','B',np.nan,'D',np.nan]
})

df['user'] = df.ffill(axis=1).iloc[:, -1]
print (df)
  user_a user_b user
0      A      A    A
1      B      B    B
2      C    NaN    C
3    NaN      D    D
4    NaN    NaN  NaN

答案 1 :(得分:0)

使用In [24]: df = pd.DataFrame({'user_a':['A','B','C',np.nan],'user_b':['A','B',np.nan,'D']}) In [25]: df Out[25]: user_a user_b 0 A A 1 B B 2 C NaN 3 NaN D In [26]: df['user'] = df.apply(lambda x: [i for i in x if not pd.isna(i)][0], axis=1) In [27]: df Out[27]: user_a user_b user 0 A A A 1 B B B 2 C NaN C 3 NaN D D 方法:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.7.8</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.7.8</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.7.8</version>
</dependency>