python创建两列n行的表格_Python Pandas:基于两列在dataFrame中创建新行

该博客介绍了如何使用Python的Pandas库从含有产品和订单的两列数据中创建新的DataFrame行。通过strip、split、expand、stack和reset_index等操作,将带有'符号的数据转换为两个独立的Series,然后构建新的DataFrame。最终,将原始DataFrame与新创建的DataFrame合并,形成完整的信息表格。
摘要由CSDN通过智能技术生成

您可以使用:#remove ', split by +, create Series

s1 = df.Products.str.strip("'")

.str.split('+', expand=True)

.stack()

.reset_index(drop=True, level=1)

#remove ', split by +, create Series, strip spaces

s2 = df.Orders.str.strip("'")

.str.split('+', expand=True)

.stack().str.strip()

.reset_index(drop=True, level=1)

#if need add '

s1 = "'" + s1 + "'"

s2 = "'" + s2 + "'"

df1 = pd.DataFrame({'Products':s1, 'Orders':s2}, index=s1.index)

print (df1)

Orders Products

0 'ord1' 'A'

0 'ord2' 'G'

1 'ord3' 'C'

2 'ord4' 'H'

2 'ord5' 'Z'

3 'ord6' 'K'

4 'ord7' 'T'

5 'ord#' 'K'

6 'ord8' 'R'

6 'ord9' 'D'

6 'ord10' 'S'

7 'ord11' 'A'

^{pr2}$

按注释编辑:

使用^{}创建df1:...

...

df1 = pd.concat([s1, s2], keys=('Orders', 'Products'), axis=1)

print (df1)

Orders Products

0 'A' 'ord1'

0 'G' 'ord2'

1 'C' 'ord3'

2 'H' 'ord4'

2 'Z' 'ord5'

3 'K' 'ord6'

4 'T' 'ord7'

5 'K' 'ord#'

6 'R' 'ord8'

6 'D' 'ord9'

6 'S' 'ord10'

7 'A' 'ord11'

print(df.drop(['Orders', 'Products'], axis=1)

.join(df1)

.dropna(subset=['Cust-id'])

.reset_index(drop=True))

Cust-id Sex Country Orders Products

0 'Cu1' 'F' 'FR' 'A' 'ord1'

1 'Cu1' 'F' 'FR' 'G' 'ord2'

2 'Cu2' 'M' 'US' 'C' 'ord3'

3 'Cu3' 'M' 'UK' 'H' 'ord4'

4 'Cu3' 'M' 'UK' 'Z' 'ord5'

5 'Cu4' 'F' 'RU' 'K' 'ord6'

6 'Cu5' 'M' 'US' 'T' 'ord7'

7 'Cu6' 'F' 'US' 'R' 'ord8'

8 'Cu6' 'F' 'US' 'D' 'ord9'

9 'Cu6' 'F' 'US' 'S' 'ord10'

10 'Cu7' 'M' 'UK' 'A' 'ord11'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值