![](/img/trans.png)
[英]create new rows based on values of one of the columns in the above row with specific condition - pandas or numpy
[英]Pandas dataframe create new columns with values based on above row
目前,我有一個像這樣的 dataframe :
指數 | 領域 | 類型 | 上游的 | 下游 | 旗幟 |
---|---|---|---|---|---|
1 | 冰 | 搜索引擎 | 1 | 0 | 鈉 |
2 | 英國廣播公司的新聞 | 公共廣播公司 | 1 | 1 | 中心 |
3 | 英國廣播公司的新聞 | 公共廣播公司 | 1 | 1 | 中心 |
4 | 社交媒體 | 1 | 0 | 鈉 | |
5 | 福克斯新聞 | 商業廣播公司 | 1 | 1 | 中心 |
我想像這樣獲得 dataframe:
指數 | 領域 | 類型 | 上層 | 下降 | 旗幟 | 參考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 | 社交媒體 | 1 | 0 | 鈉 | 鈉 | 鈉 | 鈉 | 鈉 | |
5 | 福克斯新聞 | 商業廣播公司 | 1 | 1 | 中心 | 1 | 1 | 0 | 0 |
我的腳本需要做的是:
創建新列,當上一行滿足upstream = 1,downstream = 0的條件時,根據上一行對每個新聞項(始終標記為中心)進行分類。新聞有6類(例如,comm broadcaster,public broadcaster)只是例子)。 我想要新列中的二進制值,例如上面的示例。
重要的是,如果“新聞”類型之后的后續行也是“中心”標志顯示的“新聞”,那么這也應該與前一個新聞行的分類相同。
我從您的問題中了解到的是,您想根據先前列的值創建新列。
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.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.