Python:动态更改未指定列数的值

Python:动态更改未指定列数的值,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我有一个简单的数据框,可能如下所示: | Label | Average BR_1 | Average BR_2 | Average BR_3 | Average BR_4 | | ------- | ------------ | ------------ | ------------ | ------------ | | Label 1 | 50 | 30 | 50 | 50 | | Label 2 | 60

我有一个简单的数据框,可能如下所示:

| Label   | Average BR_1 | Average BR_2 | Average BR_3 | Average BR_4 |
| ------- | ------------ | ------------ | ------------ | ------------ |
| Label 1 | 50           | 30           | 50           | 50           |
| Label 2 | 60           | 20           | 50           | 50           |
| Label 3 | 65           | 50           | 50           | 50           |
我希望能够做的是在每列中添加一个%符号

我知道我可以为每个专栏做类似的事情:

df['Average BR_1']=df['Average BR_1'].astypestr+'%

但是,问题是,我从CSV文件中读取数据,该文件可能包含更多这些列,因此它可能包含平均BR_1到平均BR_4,而不是平均BR_1到平均BR_10

因此,我希望对每个列名中包含平均BR_的列自动进行此更改

我一直在阅读关于.loc的内容,但我只成功地将列值更改为一个全新的值,如下所示:

df.loc[:,['Average BR_1','Average BR_2']]=您好

另外,我还没有在这里实现regex

我试着列出:

colsArr=[c表示df列中的c,如果c中的“平均BR_u”] 打印Colsarr 但是我没有用.loc实现这一点

我想我可以用一个循环来实现这一点,但我觉得肯定有更好的解决方案,但我想不出来

你能帮我指一下正确的方向吗

多谢各位

# extract the column names that need to be updated
cols = df.columns[df.columns.str.startswith('Average BR')]

# update the columns
df[cols] = df[cols].astype(str).add('%')

print(df)
     Label Average BR_1 Average BR_2 Average BR_3 Average BR_4
0  Label 1          50%          30%          50%          50%
1  Label 2          60%          20%          50%          50%
2  Label 3          65%          50%          50%          50%
您可以使用和

输出:

您可以使用和

输出:

df.update(df.filter(like='Average BR_').astype('str').add('%'))
df
   Label     Average BR_1   Average BR_2   Average BR_3   Average BR_4
0  Label 1            50%            30%            50%            50%
1  Label 2            60%            20%            50%            50%
2  Label 3            65%            50%            50%            50%