如果你在 Pandas 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
首先,我通过将哪些列分配给其中一个列表来指定它们的价值。
~df[col].isnull() 这会检查值是否不为空,如果为真则乘以你的体重。
之后 DataFrame 如下所示:
但您可以重新排列列,使其看起来更好。
df.reindex_axis(sorted(df.columns), axis=1)
希望对你有帮助
编辑:
如果您的字段不是 NaN 并且只是空字符串,您可以将它们替换为 NaN。为此,只需应用以下内容:
df = df.apply(lambda x: x.str.strip(), axis=1).replace("", np.NaN)
因此首先修剪每个字符串,然后用 NaN 替换。如果在那之后你想回到空字符串,就像
df.fillna("")
如果您的 nans 也是字符串,只需将其添加到替换方法中的字符串中,如下所示:replace(["","nan"], np.NaN)