我正在尝试合并两列。合并没有解决,我已经阅读和询问了两天的时间,试图找到解决方案,所以我将走另一条路。
由于无论如何我都必须在合并后更改列名称,所以为什么不创建一个新列并根据其他两个列来填充它。
所以我现在有A,B和C列。
C是空白列。
列A包含大多数行的值,但不是全部。如果列A没有值,我想使用列B的值。我想将两个值之一放在C列中。
请记住,当列A没有值时,会在其位置放置一个“-”(因此,为什么我花了很多时间试图合并这些列)。
我已经将“-”转换为NaN,但是.fillna函数不起作用,我不确定为什么。
我以为我必须编写一个for循环和一个if语句来完成此操作,尽管我觉得有一个函数可以根据其他两个列的值来完成新列的编译。
| A | B |
| 34 | 35 |
| 37 | - |
| - | 32 |
| 94 | 92 |
| - | 91 |
| 47 | - |
|C |
|34|
|37|
|32|
|94|
|91|
|47|
答案 0 :(得分:3)
这是否回答了您的问题:
df['A']=df.apply(lambda x: x['B'] if x['A']=='-' else x['A'],axis=1)
答案 1 :(得分:0)
df ['A'] = df.apply(lambda x:x ['B']如果x ['A'] == np.NaN else x ['A'],axis = 1)