首页 > 解决方案 > Pandas 数据框使用基于上述行的值创建新列

问题描述

目前,我有一个这样的数据框:

指数 领域 类型 上游的 下游 旗帜
1 搜索引擎 1 0
2 英国广播公司的新闻 公共广播公司 1 1 中心
3 英国广播公司的新闻 公共广播公司 1 1 中心
4 Facebook 社交媒体 1 0
5 福克斯新闻 商业广播公司 1 1 中心

我想获得这样的数据框:

指数 领域 类型 上层 下降 旗帜 参考fb 参考soc_med ref_bing refer_search_eng
1 搜索引擎 1 0
2 英国广播公司的新闻 公共广播公司 1 1 中心 0 0 1 1
3 英国广播公司的新闻 公共广播公司 1 1 中心 0 0 1 1
4 Facebook 社交媒体 1 0
5 福克斯新闻 商业广播公司 1 1 中心 1 1 0 0

我的脚本需要做的是:

创建新列,当上一行满足upstream = 1,downstream = 0的条件时,根据上一行对每个新闻项(始终标记为中心)进行分类。新闻有6个类别(例如,comm broadcaster,public broadcaster)只是例子)。我想要新列中的二进制值,例如上面的示例。

重要的是,如果“新闻”类型之后的后续行也是“中心”标志显示的“新闻”,那么这也应该与前一个新闻行的分类相同。

标签: pythonpandasdataframedata-wrangling

解决方案


我从您的问题中了解到的是,您想根据先前列的值创建新列。

df["new_column_nam"] = df[(df[upst] == 1) & (df[downst] == 0)]

In place of new_column_name, you could use the column names that you want to create.

推荐阅读