Rah*_*Miz 4 python dataframe pandas
我有一个 5k x 2 列数据框,称为“两者”。我想通过将一列中的任何 NaN 值替换为相邻列的值来创建一个新的 5k x 1 DataFrame 或列(无关紧要)。
前任:
Gains Loss
0 NaN NaN
1 NaN -0.17
2 NaN -0.13
3 NaN -0.75
4 NaN -0.17
5 NaN -0.99
6 1.06 NaN
7 NaN -1.29
8 NaN -0.42
9 0.14 NaN
Run Code Online (Sandbox Code Playgroud)
例如,我需要将第 1 行到第 5 行第一列中的 NaN 与第二列中同一行中的值交换,以获得以下形式的新 df:
Change
0 NaN
1 -0.17
2 -0.13
3 -0.75
4 -0.17
5 -0.99
6 1.06
Run Code Online (Sandbox Code Playgroud)
我如何告诉 python 这样做?
您可以NaN
用零填充这些值,然后只需添加您的列:
both["Change"] = both["Gains"].fillna(0) + both["Loss"].fillna(0)\n
Run Code Online (Sandbox Code Playgroud)\n\n然后 \xe2\x80\x94 如果你需要它 \xe2\x80\x94 你可以将结果零返回到NaN
s:
both["Change"].replace(0, np.nan, inplace=True)\n
Run Code Online (Sandbox Code Playgroud)\n\n结果:
\n\n\n\n\nRun Code Online (Sandbox Code Playgroud)\nGains Loss Change\n0 NaN NaN NaN\n1 NaN -0.17 -0.17\n2 NaN -0.13 -0.13\n3 NaN -0.75 -0.75\n4 NaN -0.17 -0.17\n5 NaN -0.99 -0.99\n6 1.06 NaN 1.06\n7 NaN -1.29 -1.29\n8 NaN -0.42 -0.42\n9 0.14 NaN 0.14\n
最后,如果你想删除原来的列,你可以删除它们:
\n\nboth.drop(columns=["Gains", "Loss"], inplace=True)\n
Run Code Online (Sandbox Code Playgroud)\n