あなたはパンダDATAFRAMEで、このデータを持っている場合、それは本当に簡単です:ここ
は私のサンプルのDFである:
df = pd.DataFrame([[np.NaN, np.NaN, np.NaN],['Significant',np.NaN, np.NaN],[np.NaN, "Yes", np.NaN], ["Significant", np.NaN, "Top Advisor"]], columns=['Advisor', 'Retirement', 'Recognition'])
columns_50_points = [df.columns[0]]
columns_100_points = df.columns[1:]
for col in columns_50_points:
df[col+"_Weight"] = ~df[col].isnull() * 50
for col in columns_100_points:
df[col+"_Weight"] = ~df[col].isnull() * 100
まず、私は非常にどのように価値がある列を指定リストの1つにそれらを割り当てることによって。
〜df [col] .isnull()これは、値がnullでないかどうかをチェックします。そのデータフレームの後
は次のようになります。
ていますが、それは良く見えるように、列の順序を変更することができます。
df.reindex_axis(sorted(df.columns), axis=1)
私はそれが
EDIT役に立てば幸い:あなたのフィールドはNaNを、ちょうど空の文字列でない場合、あなたはNaNをに置き換えることができます場合は
を。行うにはこれだけにこれを適用します。
df = df.apply(lambda x: x.str.strip(), axis=1).replace("", np.NaN)
だから、最初の各文字列はトリミングされ、その後、NaNをに置き換えます。そのあとは、空の文字列に戻りたい場合は、あなたのNaNは文字列でもあるかのように簡単に
df.fillna("")
としてそれだけで文字列のようにメソッドを置き換えるためにこれを追加し、です:置き換える([「」、「ナン」] 、np。NaN)
上記の詳細な説明をありがとうございます。残念ながら、データフレームにコードを適用すると、_Weight列はNaNを認識しません。たとえば、Advisor_Weightフィールドの各行は50になります。私のデータフレームは空白をnan - >と表示して何かに影響を与えますか? – PineNuts0
回答が更新されました。今すぐ使えることを願って –