データフレームでゼロ以外の値のログを取得し、0をNAに置き換えるにはどうすればよいですか。データフレーム内のゼロ以外の値だけのログを取り、OをNAに置き換えるにはどうすればよいですか?
私は以下のようなデータフレームを持っている:
time y1 y2
0 2017-08-06 00:52:00 0 10
1 2017-08-06 00:52:10 1 20
2 2017-08-06 00:52:20 2 0
3 2017-08-06 00:52:30 3 0
4 2017-08-06 00:52:40 0 5
5 2017-08-06 00:52:50 4 6
6 2017-08-06 00:53:00 6 11
7 2017-08-06 00:53:10 7 12
8 2017-08-06 00:53:20 8 0
9 2017-08-06 00:53:30 0 13
私はすべての列のログを取りたいが、最初の列の時間とログを期待する唯一の非ゼロ値の計算もしてのをゼロにすべきであるNAのと交換すべきですか?私はこれをどのようにして行うのですか?助けてください
cols = df.columns.difference(['time'])
# Replacing O's with NA's using below:
df[cols] = df[cols].mask(np.isclose(df[cols].values, 0), np.nan)
df[cols] = np.log(df[cols]) # but this will try take log of NA's also.
:
だから、私はこのような何かをしようとしました。
出力は同じ時間列のデータフレームでなければならず、すべてのゼロはNAで置き換えられ、残りのすべての値のログには1列目の値が必要です。
出力として期待しているものを追加できますか? –