相关疑难解决方法(0)

第一列名称,行大熊猫非空值

我想知道第一年有各种项目的收入.

鉴于以下内容,数据帧:

ID  Y1      Y2      Y3
0   NaN     8       4
1   NaN     NaN     1
2   NaN     NaN     NaN
3   5       3       NaN
Run Code Online (Sandbox Code Playgroud)

我想按行返回第一列的名称,其中包含非空值.

在这种情况下,我想要返回:

['Y2','Y3',NaN,'Y1']
Run Code Online (Sandbox Code Playgroud)

我的目标是将其添加为原始数据框的列.

以下代码主要有效,但真的很笨重.

import pandas as pd
import numpy as np

df = pd.DataFrame({'Y1':[np.nan, np.nan, np.nan, 5],'Y2':[8, np.nan, np.nan, 3], 'Y3':[4, 1, np.nan, np.nan]})
df['first'] = np.nan

for ID in df.index:
row = df.loc[ID,]
for i in range(0,len(row)):
    if (~pd.isnull(row[i])):
        df.loc[ID,'first'] = row.index[i]
        break
Run Code Online (Sandbox Code Playgroud)

收益:

   Y1  Y2  Y3  first
0 NaN  8   4   Y2   
1 NaN …
Run Code Online (Sandbox Code Playgroud)

python numpy pandas

2
推荐指数
1
解决办法
836
查看次数

标签 统计

numpy ×1

pandas ×1

python ×1