我有一个数据框,其中的列如下所示:

df=pd.DataFrame(columns=['(NYSE_close, close)','(NYSE_close, open)','(NYSE_close, volume)', '(NASDAQ_close, close)','(NASDAQ_close, open)','(NASDAQ_close, volume)'])

df:
(NYSE_close, close) (NYSE_close, open) (NYSE_close, volume) (NASDAQ_close, close) (NASDAQ_close, open) (NASDAQ_close, volume)

我想删除下划线后的所有内容,并在逗号后添加任何内容,以获得以下内容:

df:
NYSE_close  NYSE_open  NYSE_volume  NASDAQ_close  NASDAQ_open  NASDAQ_volume

我试图go 掉列名,但它用nan替换了它.有什么建议吗?

提前谢谢你.

推荐答案

您可以使用re.sub提取列名的适当部分,并将其替换为:

import re

df=pd.DataFrame(columns=['(NYSE_close, close)','(NYSE_close, open)','(NYSE_close, volume)', '(NASDAQ_close, close)','(NASDAQ_close, open)','(NASDAQ_close, volume)'])
df.columns = [re.sub(r'\(([^_]+_)\w+, (\w+)\)', r'\1\2', c) for c in df.columns]

输出:

Empty DataFrame
Columns: [NYSE_close, NYSE_open, NYSE_volume, NASDAQ_close, NASDAQ_open, NASDAQ_volume]
Index: []

Python相关问答推荐

为什么符号没有按顺序添加?

使用groupby Pandas的一些操作

如何从数据库上传数据到html?

Pandas Loc Select 到NaN和值列表

如何保持服务器发送的事件连接活动?

为什么Python内存中的列表大小与文档不匹配?

如何在Python请求中组合多个适配器?

Python pint将1/华氏度转换为1/摄氏度°°

Python—在嵌套列表中添加相同索引的元素,然后计算平均值

使用SQLAlchemy从多线程Python应用程序在postgr中插入多行的最佳方法是什么?'

Django.core.exceptions.SynchronousOnlyOperation您不能从异步上下文中调用它-请使用线程或SYNC_TO_ASYNC

Matplotlib中的曲线箭头样式

Django更新视图未更新

时间戳上的SOAP头签名无效

迭代工具组合不会输出大于3的序列

将索引表转换为Numy数组

运行从Airflow包导入的python文件,需要airflow实例?

判断字典键、值对是否满足用户定义的搜索条件

日志(log)轴上的自定义刻度出现意外的次要刻度标记行为

将标量值作为输入并输出矩阵的函数的积分