python - 提取python pandas Dataframe中单个列中包含的分组
问题描述
有一个 excel 文件,如下图所示:
使用后,pd.read_excel()
我有一个如下所示的数据框:
pd.DataFrame({'Accessory Description':['GROUP1','item1', 'item2','item3','item4','item5','GROUP2','item6','item7','item8'
,'item9','item10','GROUP3','item11','item12','item13','item14','item15']})
但是我想操作数据框,使其显示如下:
pd.DataFrame({'Group':['Group1','Group1','Group1','Group1','Group1','Group2','Group2','Group2','Group2','Group2'
,'Group3','Group3','Group3','Group3','Group3']
,'Accessory Description':['item1', 'item2','item3','item4','item5','item6','item7','item8'
,'item9','item10','item11','item12','item13','item14','item15']})
我该怎么做呢?
解决方案
对组使用Series.str.isupper
withSeries.where
和 ffill,然后删除两列中具有相同值的行:
s = df['Accessory Description'].where(df['Accessory Description'].str.isupper()).ffill()
df.insert(0, 'Group', s)
df = df[df['Group'].ne(df['Accessory Description'])].reset_index(drop=True)
print (df)
Group Accessory Description
0 GROUP1 item1
1 GROUP1 item2
2 GROUP1 item3
3 GROUP1 item4
4 GROUP1 item5
5 GROUP2 item6
6 GROUP2 item7
7 GROUP2 item8
8 GROUP2 item9
9 GROUP2 item10
10 GROUP3 item11
11 GROUP3 item12
12 GROUP3 item13
13 GROUP3 item14
14 GROUP3 item15
推荐阅读
- node.js - 使用 express.js 上传图片
- javascript - 反应本机webview | 3Ds 安全性不重定向页面
- actions-on-google - 为什么助手会特意打断我的动作?
- toit - 无法从流中接收数据
- java - 当超类有私有方法时调用接口的默认方法
- python - 如果我在服务器上运行脚本,我应该设置虚拟环境吗?
- python - Web Scraping Yahoo Finance attempt not working
- html - 如何从网格布局中删除高度空间?
- c# - RestSharp 使用默认值反序列化 401 对对象的响应
- flutter - 如何在 Flutter 中控制其上方的键盘和小部件