希望执行类似的操作,但即使存在空值但不包含空值,也要完成行聚合
import pandas as pd
import numpy as np
df = pd.DataFrame(data= {'Subject': ['X', 'G', 'H', 'M'],
'Col1': ['cat', 'dog', np.nan, 'horse'],
'Col2': [np.nan, 'black', 'brown', 'grey'],
'Col3': ['small', 'medium', 'large', 'large']})
df['Col4'] = df['Col1'] + ', ' + df['Col2'] + ', ' + df['Col3']
为了澄清,这是我正在寻找的结果数据帧
Subject Col1 Col2 Col3 Col4
0 X cat NaN small cat, small
1 G dog black medium dog, black, medium
2 H NaN brown large brown, large
3 M horse grey large horse, grey, large
可以对列轴使用
apply
、dropna
和join
:正如预期的那样:
对于像这样的小数据帧,它应该比@yatu的方法快30%左右,但对于较大的数据帧,另一种方法更好
一种方法是在第一级上^{} 和^{} (这将删除缺少的值)^{} ,并使用
str.join
进行聚合:时间安排-
相关问题 更多 >
编程相关推荐