【问题标题】:Preprocessing binary columns in pandas预处理熊猫中的二进制列
【发布时间】:2023-01-09 15:46:43
【问题描述】:

我正在使用熊猫中的数据框。

将熊猫导入为 pd df = pd.read_csv('Amazon_Historical_StockPrice2.csv',parse_dates=['日期'],index_col='日期')

我只需要选择二进制列进行预处理。我试图为列的值设置条件,以选择值小于或等于 1 且大于或等于 0 的列,但此条件不排除此区间内的有理数。 我想问一下,有没有自动制作的选项,因为有太多的列无法手工制作?

谢谢!

【问题讨论】:

  • 您能否举例说明如何归档结构以及您希望获得的结果示例?

标签: python pandas dataframe


【解决方案1】:
import numpy as np
import pandas as pd
df = pd.DataFrame({
   "id": [100, 100, 101, 102, 103, 104, 105, 106],
   "A": [1, 2, 3, 4, 5, 2, np.nan, 5],
   "B": [45, 56, 48, 47, 62, 112, 54, 49],
   "C": [1.2, 1.4, 1.1, 1.8, np.nan, 1.4, 1.6, 1.5],
   "Binary": [1, 1, 0, 1, 1, 0, 1, 0]
})

df

    id    A    B    C  Binary
0  100  1.0   45  1.2       1
1  100  2.0   56  1.4       1
2  101  3.0   48  1.1       0
3  102  4.0   47  1.8       1
4  103  5.0   62  NaN       1
5  104  2.0  112  1.4       0
6  105  NaN   54  1.6       1
7  106  5.0   49  1.5       0

使用列表理解来获取二进制列的列名:

binary_cols = [col for col in df 
         if np.isin(df[col].dropna().unique(), [0, 1]).all()]

df[binary_cols]

输出:

  Binary
0   1
1   1
2   0
3   1
4   1
5   0
6   1
7   0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-12
    • 1970-01-01
    • 1970-01-01
    • 2021-07-28
    • 1970-01-01
    • 2021-09-07
    相关资源
    最近更新 更多