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%