如何根据值为 above/below 行中位数(如果 > 中位数,1,否则 0)将数据帧转换为二进制?
How to transform dataframe to binary based on values being above/below the row median (if > median, 1, else 0)?
我希望根据行中位数将数据帧转换为二进制。请在下面查看我的输入和预期输出。
import pandas as pd
df_input = pd.DataFrame({'row1': [5, 10, 20], 'row2': [1, 30, 40],},
index = ['2021-02-24', '2021-02-25', '2021-02-26'])
df_expected_output = pd.DataFrame({'row1': [1, 0, 0], 'row2': [0, 1, 1],},
index = ['2021-02-24', '2021-02-25', '2021-02-26'])
df_median = df_input.median(axis=1)
我找到了这个 但无法使用它来比较行。
(dat > dat.median()).astype('int')
如何对行执行此操作?
将 gt
与正确的轴一起使用:
df_input.gt(df_input.median(axis=1), axis=0).astype(int)
输出:
row1 row2
2021-02-24 1 0
2021-02-25 0 1
2021-02-26 0 1
我希望根据行中位数将数据帧转换为二进制。请在下面查看我的输入和预期输出。
import pandas as pd
df_input = pd.DataFrame({'row1': [5, 10, 20], 'row2': [1, 30, 40],},
index = ['2021-02-24', '2021-02-25', '2021-02-26'])
df_expected_output = pd.DataFrame({'row1': [1, 0, 0], 'row2': [0, 1, 1],},
index = ['2021-02-24', '2021-02-25', '2021-02-26'])
df_median = df_input.median(axis=1)
我找到了这个
(dat > dat.median()).astype('int')
如何对行执行此操作?
将 gt
与正确的轴一起使用:
df_input.gt(df_input.median(axis=1), axis=0).astype(int)
输出:
row1 row2
2021-02-24 1 0
2021-02-25 0 1
2021-02-26 0 1