前提・実現したいこと
['Alice', '国語', 87, 83], ['Alice', '算数', 72, np.nan], ['Bob', '国語', 65, np.nan], ['Bob', '算数', 92, 86], columns=['Name', 'Subject', 'Point', 'Last'])
このdataflameでLastの欠損値がない場合にPointの値で埋める機能を実装したいです。
機能で言うとfillna(df.Point)と全く同じものです。
発生している問題・エラーメッセージ
関数の結果がnanのままになってしまっています...
該当のソースコード
python
1ソースコード
import numpy as np
import pandas as pd
df = pd.DataFrame(
[
['Alice', '国語', 87, 83],
['Alice', '算数', 72, np.nan],
['Bob', '国語', 65, np.nan],
['Bob', '算数', 92, 86],
],
columns=['Name', 'Subject', 'Point', 'Last'])
df
def counter(x, y, z):
if z == False:
return y
else:
return x
sr = df.Last.isnull()
for a, b, c in zip(df.Last, df.Point, sr):
print(counter(a, b, c))
試したこと
通常のlistであれば問題なく動くことを確認しております。
勉強不足な質問であると思いますが、よろしくお願い申し上げます。
ここに問題に対して試したことを記載してください。
q = [1, 2, 3]
w = [11, 22, 33]
e = [True, False, False]
for a, b, c in zip(q, w, e):
print(counter(a, b, c))
結果 [1, 22, 33]
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。