python之dataframe的行列转换(将多列转换成多行&将多行转换成多列)

博客介绍了使用Python进行数据列行转换的方法。通过代码展示了将多列转换成多行,以及将多行转换成多列的操作,涉及设置索引、堆叠、重命名索引、重置索引等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、将多列转换成多行

data=pd.read_excel(path)

data=data.set_index(['flag','region'])

data=data.stack()

data.index=data.index.rename('Time',level=2)

data.name='ed_bw'

data=data.reset_index()

2、将多行转换成多列

data=data.set_index(['flag','Time'])
print(data)
data=data.unstack('Time')
data=data.reset_index()

以下是几种在pandas中进行行列转换的方法: 1. 使用explode函数进行纵向扩展(多行) ```python df = pd.DataFrame({'col': [['a', 'b'], ['c', 'd', 'e']]}) df = df.explode('col') print(df) ``` 2. 使用str.split函数进行横向扩展(多列) ```python df = pd.DataFrame({'col': ['a,b', 'c,d,e']}) df[['col1', 'col2', 'col3']] = df['col'].str.split(',', expand=True) print(df) ``` 3. 使用pivot函数进行行转列(某些字段值转换为表头) ```python df = pd.DataFrame({'A': ['foo', 'foo', 'bar', 'bar'], 'B': ['one', 'two', 'one', 'two'], 'C': [1, 2, 3, 4]}) df = df.pivot(index='A', columns='B', values='C') print(df) ``` 4. 使用melt函数进行列转行(部分列名转换为一列数据值) ```python df = pd.DataFrame({'A': ['foo', 'bar'], 'B': [1, 2], 'C': [3, 4]}) df = df.melt(id_vars='A', value_vars=['B', 'C'], var_name='Variable', value_name='Value') print(df) ``` 5. 使用lreshape函数进行多列合并两列(列合并) ```python df = pd.DataFrame({'A': [1, 2], 'B': [3, 4], 'C': [5, 6], 'D': [7, 8]}) df = pd.lreshape(df, {'X': ['A', 'B'], 'Y': ['C', 'D']}) print(df) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值