pandas 如果列名包含特定值,如何向列中的所有行添加值

yi0zb3m4  于 2023-06-28  发布在  其他
关注(0)|答案(3)|浏览(99)

我有一个 Dataframe ,看起来像这样:
| 城市|汽车|第一节|第二节|第三栏|
| - -----|- -----|- -----|- -----|- -----|
| 马德里|五十五万|0| 0| 2|
| 伦敦|七八三九九三|一个|三个|0|
我想在标题中包含'Col'的所有列中添加+1。所以df看起来像这样:
| 城市|汽车|第一节|第二节|第三栏|
| - -----|- -----|- -----|- -----|- -----|
| 马德里|五十五万|一个|一个|三个|
| 伦敦|七八三九九三|2| 4|一个|
我的问题是我有2000个列的名称从'Col_1'到'Col_999'
我只能通过使用df["Gene1"] = df["Gene1"] + 1将+1添加到所有列,这是不合适的,因为我有2000列。

zte4gxcn

zte4gxcn1#

你能做到

df[[col for col in df if col.startswith('Col')]] += 1
zujrkrfu

zujrkrfu2#

您还可以:

df = df.filter(like="Col")

#or 

df = df.filter(regex='Col')

那么,

df+1
lrl1mhuk

lrl1mhuk3#

这里有一个选项:

df = df.assign(**df.filter(regex='^Col').add(1))

输出:

City    Cars  Col 1  Col 2  Col 3
0  Madrid  550000      1      1      3
1  London  783993      2      4      1

相关问题