我有一个熊猫数据框如下:
name of dataframe : ZA
AB AC AF
A1 1.764052 0.400157 0.978738
B1 NaN 0.400157 0.400157
我想稍后添加每个非空列中随机行的索引。你知道吗
代码如下:
list = ['AB','AC','AF']
info_s = pd.DataFrame(columns=['X'],index = list)
for app in list:
if app in ZA.columns:
ele = ZA.dropna(how='all') #didn't work
ele1=ele.loc[:,app].take(np.random.permutation(len(ele.index))[:1])
ind = ele1.index
info_s.loc[app, 'X'] = ind
else:
info_s.loc[app, 'X'] = None
输出:
Index X
AB Only A1
AC A1 or B1
AF A1 or B1
IIUC编辑:
输出:
您不需要列表或for循环,这一行可以:
解释
使用
notnull
转换为布尔值,然后应用lambda函数连接布尔值为真的索引的所有值。在Pandas系列中,如果x是布尔值,那么x[x]将返回那些正索引和值。你知道吗输出:
你可以做一些家务重命名列,重置索引,等等。。。你知道吗
输出:
相关问题 更多 >
编程相关推荐