【问题标题】:Trying to cross two dataframes, one with values the other with bools试图跨越两个数据框,一个带有值,另一个带有布尔值
【发布时间】:2020-02-26 01:06:12
【问题描述】:

我正在尝试从两个源数据帧中获取一个新数据帧。第一个将包含数据,第二个将仅包含 True 或 False。 两者具有相同的列名、相同的列数和相同的行数。


import pandas as pd
data1 = [['Alex',10],['Bob',12],['Clarke',13]]
df1 = pd.DataFrame(data1,columns=['Name','Age'])

data2 = [[True,False],[False,True],[False,False]]
df2 = pd.DataFrame(data2,columns=['Name','Age'])

df3 = df1 X df2

df3 = [['Alex', ''],['',12],['','']]

我想获得一个字段为空的数据框,因为在 df2 中它们为 False,而 df1 的值在 df2 中为 True

【问题讨论】:

    标签: python dataframe boolean concat


    【解决方案1】:

    试试这个:

    df3 = df1[df2].fillna('')
    

    示例输出:


    解释

    由于 df1 和 df2 具有相同的索引;执行df1[df2] 过滤并显示为真值并添加NaN 为假。

    fillna('') 将所有 NaN 值替换为空字符串。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-12
      • 2021-12-16
      • 1970-01-01
      • 2021-10-11
      • 2022-11-30
      • 1970-01-01
      相关资源
      最近更新 更多