2

観測値の 1 つで列が一致していないデータフレームがあります。このような種類:

  Names    Age   Dept
0  John     21  sales
1   Joe     22     IT
2   Ann     20     IT
3    24  sales    NaN

値を次の列にシフトし、実際に欠落している値を持つ最初の列に NaN を割り当てたいと思います。

   Names  Age   Dept
0  John   21  sales
1   Joe   22     IT
2   Ann   20     IT
3   NaN   24  sales

私はたくさん検索しましたが、これを行う方法が見つかりませんでした。簡単な方法でそれを行う組み込みの方法が必要だと思います。

プログラミング初心者なので初歩的な質問でしたらすみません。

4

2 に答える 2

1

または関数を使用to_numericしてブール マスクを作成し、問題のある行を見つけてから、フィルター処理された行のみを検索します。notnaisnumericshift

m = pd.to_numeric(df['Names'], errors='coerce').notna()
#alternative
#m = df['Names'].str.isnumeric()

df[m] = df[m].shift(axis=1)
print (df)
  Names Age   Dept
0  John  21  sales
1   Joe  22     IT
2   Ann  20     IT
3   NaN  24  sales
于 2018-12-08T10:08:25.853 に答える