【问题标题】:Creating new column from columns in pandas dataframe从熊猫数据框中的列创建新列
【发布时间】:2021-08-18 20:51:44
【问题描述】:

我有 2 个熊猫数据框 df1df2

df1

id name age
1 Joe 16
2 Jane 17

df2

id score
1 16
2 8

然后我合并两个数据框:

mergedf = df1.merge(df2, on='id', how='left')

毕竟我将创建一个新的数据框,它应该有来自 df1 的列 id 和 name,以及来自 df2 的列分数,以及一个新列 (diff)这将是分数和年龄之间的差异,另一个称为状态的列将是以下if 'age' == 'score' then 'OK' else 'false'的结果@

这是新数据框的代码

newDF = mergedf[['id','name','score','diff', 'status']]

但我仍然不清楚我应该如何嵌套这段代码

if 'age' == 'score' then 'OK' else 'false'

生成新的列差异和状态。

【问题讨论】:

  • 请不要粘贴代码或数据的图像。

标签: python pandas


【解决方案1】:

使用diff 计算列之间的差异,然后使用numpy.where 满足您的条件

mergedf = df1.merge(df2, on='id', how='left')
mergedf['diff'] = mergedf[['age', 'score']].diff(axis=1)['score']
mergedf['status'] = np.where(mergedf['diff'] == 0, 'OK', False)
print(mergedf)

   id  name  age  score  diff status
0   1   Joe   16     16     0     OK
1   2  Jane   17      8    -9  False

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-28
    • 2020-09-25
    • 2016-07-30
    • 2023-01-14
    • 2016-08-07
    • 1970-01-01
    • 2017-08-27
    • 1970-01-01
    相关资源
    最近更新 更多