python合并单元格 索引_pandas表连接 索引上的合并方法

如下所示:

left1 = pd.DataFrame({‘key':[‘a','b','a','a','b','c'],'value':range(6)})

right1 = pd.DataFrame({‘group_val':[3.5,7]},index = [‘a','b'])

print(left1)

print(right1)

result = pd.merge(left1,right1,left_on='key',right_index=True)

print(result)

层次化数据的索引

lefth = pd.DataFrame({‘key1':[‘Ohio','Ohio','Ohio','Nevada','Nevada'],

‘key2':[2000,2001,2002,2001,2002],

‘data':np.arange(5)})

print(lefth)

righth = pd.DataFrame(np.arange(12).reshape(6,2),index = [[‘Nevada','Nevada','Ohio','Ohio','Ohio','Ohio'],

[2001,2000,2000,200,2001,2002]])

print(righth)

result = pd.merge(lefth,righth,left_on=[‘key1','key2'],right_index=True)

print(result)

以上代码如果想改为外部连接 how = ‘outer' 就可以了

同时合并双方索引

left2 = pd.DataFrame([[1,2],[3,4],[5,6]],index=[‘a','c','e'],columns=[‘Ohio','Neveda'])

right2 = pd.DataFrame([[7,8],[9,10],[11,12],[13,14]],index=[‘b','c','d','e'],columns=[‘Missouri','Alabma'])

print(left2)

print(right2)

result = pd.merge(left2,right2,how='outer',left_index=True,right_index=True)

print(result)

以上这篇pandas表连接 索引上的合并方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

可以使用 pandas 中的 `DataFrame.style` 方法来实现合并单元格。具体步骤如下: 1. 创建一个 DataFrame。 2. 使用 `style` 方法创建一个样式对象。 3. 在样式对象中使用 `set_properties` 方法设置需要合并单元格的列和行。 4. 在样式对象中使用 `set_table_styles` 方法设置格样式,包括合并单元格的样式。 5. 在样式对象中使用 `hide_index` 方法隐藏索引列。 6. 在样式对象中使用 `render` 方法渲染格并显示。 下面是一个示例代码: ```python import pandas as pd # 创建一个 DataFrame df = pd.DataFrame({ 'A': ['foo', 'foo', 'bar', 'bar'], 'B': ['one', 'two', 'one', 'two'], 'C': [1, 2, 3, 4], 'D': [10, 20, 30, 40] }) # 创建样式对象 style = df.style # 设置需要合并单元格的列和行 style.set_properties(**{ 'border': '1px solid black', 'text-align': 'center' }).set_properties(subset=['A'], **{ 'font-weight': 'bold' }).set_properties(subset=['B'], **{ 'font-style': 'italic' }).set_properties(subset=['C'], **{ 'background-color': '#f2f2f2' }).set_properties(subset=['D'], **{ 'background-color': '#d9d9d9' }) # 设置格样式,包括合并单元格的样式 style.set_table_styles([{ 'selector': 'th', 'props': [('background-color', '#4CAF50'), ('color', 'white')] }, { 'selector': 'td.A', 'props': [('background-color', '#f2f2f2')] }, { 'selector': 'td.B', 'props': [('background-color', '#d9d9d9')] }, { 'selector': 'td.C, td.D', 'props': [('border-left', 'none'), ('border-right', 'none')] }, { 'selector': 'tr:nth-child(odd)', 'props': [('background-color', '#f9f9f9')] }, { 'selector': 'tr:hover', 'props': [('background-color', '#ddd')] }, { 'selector': '.row_heading', 'props': [('display', 'none')] }]) # 隐藏索引列 style.hide_index() # 渲染格并显示 style.render() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值