我想从数据框中的所有列名中删除前缀。
我尝试创建一个 udf 并在 for 循环中调用它
def remove_prefix(str, prefix):
if str.startswith(blabla):
return str[len(prefix):]
return str
for x in df.columns:
x.remove_prefix()
Run Code Online (Sandbox Code Playgroud)
jez*_*ael 11
Series.str.replace与正则表达式^一起使用以匹配字符串的开头:
df = pd.DataFrame(columns=['pre_A', 'pre_B', 'pre_predmet'])
df.columns = df.columns.str.replace('^pre_', '')
print (df)
Empty DataFrame
Columns: [A, B, predmet]
Index: []
Run Code Online (Sandbox Code Playgroud)
另一个解决方案是使用列表理解re.sub:
import re
df.columns = [re.sub('^pre_',"", x) for x in df.columns]
Run Code Online (Sandbox Code Playgroud)
使用该rename方法,该方法接受应用于列名称的函数
def remove_prefix(prefix):
return lambda x: x[len(prefix):]
frame = pd.DataFrame(dict(x_a=[1,2,3], x_b=[4,5,6]))
frame = frame.rename(remove_prefix('x_'), axis='columns')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6641 次 |
| 最近记录: |