我有一个问题,要将同一 Dataframe (start_end)中的两列合并为一列,还要删除空值。我打算将'Start station'
和'End station'
合并为'station'
,并根据新列'station'
保留'duration'
。我尝试了pd.merge
、pd.concat
、pd.append
,但无法解决。
开始_结束的 Dataframe :
Duration End station Start station
14 1407 NaN 14th & V St NW
19 509 NaN 21st & I St NW
20 638 15th & P St NW. NaN
27 1532 NaN Massachusetts Ave & Dupont Circle NW
28 759 NaN Adams Mill & Columbia Rd NW
预期产出:
Duration stations
14 1407 14th & V St NW
19 509 21st & I St NW
20 638 15th & P St NW
27 1532 Massachusetts Ave & Dupont Circle NW
28 759 Adams Mill & Columbia Rd NW
代码我到目前为止:
#start_end is the dataframe, 'start station', 'end station', 'duration'
start_end = pd.concat([df_start, df_end])
这是我试图:
station = pd.merge([start_end['Start station'],start_end['End station']])
4条答案
按热度按时间bq3bfh9z1#
一个月一个月
如果
NaN
真的为空mask
如果
NaN
是字符串sy5wg1nm2#
使用
combine_first
。将列1中的空值替换为col2
avwztpqn3#
为这两列指定相同的名称
堆叠,然后拆堆。
这就是我的想法:
.stack
创建了一个带有MultiIndex的序列,并为您处理空值。它在列名上对齐第二层,因为列名相同,所以只有一个列名-拆分只生成一个列。如果不更改列名,这实际上只是根据索引之间的差异进行的猜测。
似乎有点棘手,也许有人会评论它。
替代方法-使用
pd.concat
和.dropna
qkf9rpyu4#
使用
ffill