我需要重命名Pandas 中的列名,但需要管道符号@之后的字符串.

示例: Col1 @ my data1%至my data1%

我正在阅读CSV,并try BE

df= pandas.read_csv('path');
df.rename(columns=lambda col: col.replace(col, '^[^@\r\n]+@\s*\K.*$'),inplace=True)

Regex是独立工作的,但对于lambda和pandas,它只是用regex文本替换列名.

推荐答案

这里不需要重命名,您只需拆分您的分隔符,并检索最后一次拆分.即使不存在分隔符,此操作也有效.

df.columns = df.columns.str.split('@').str[-1].str.strip()

rename返回数据帧的副本,这是不必要的,因为您实际上并没有对数据进行任何转换.


df = pd.DataFrame(columns=['Col1 @ my data1', 'my data 2'])
print (df)

Empty DataFrame
Columns: [Col1 @ my data1, my data 2]
Index: []
df.columns = df.columns.str.split('@').str[-1].str.strip()
print (df)

Empty DataFrame
Columns: [my data1, my data 2] # <-- 
Index: []

Python相关问答推荐

如何在句子之间添加空白但忽略链接?

Pandas 密集排名具有相同值,按顺序排列

使用Curses for Python保存和恢复终端窗口内容

Python panda拆分列保持连续多行

请从Python访问kivy子部件的功能需要帮助

拆分pandas列并创建包含这些拆分值计数的新列

在Python中为变量的缺失值创建虚拟值

Python -根据另一个数据框中的列编辑和替换数据框中的列值

使用GEKKO在简单DTE系统中进行一致初始化

Locust请求中的Python和参数

删除所有列值,但判断是否存在任何二元组

在Polars(Python库)中将二进制转换为具有非UTF-8字符的字符串变量

用Python解密Java加密文件

无法在Docker内部运行Python的Matlab SDK模块,但本地没有问题

如何使用scipy的curve_fit与约束,其中拟合的曲线总是在观测值之下?

不允许访问非IPM文件夹

mypy无法推断类型参数.List和Iterable的区别

让函数调用方程

为什么if2/if3会提供两种不同的输出?

手动设置seborn/matplotlib散点图连续变量图例中显示的值