【发布时间】:2017-09-10 04:33:09
【问题描述】:
考虑以下 pandas 数据框:
df = pd.DataFrame({'t': [1,2,3], 'x1': [4,5,6], 'x2': [7,8,9]} )
>>> print(df)
t x1 x2
0 1 4 7
1 2 5 8
2 3 6 9
我想对名称中包含字符“x”的列应用一个函数(比如乘以 2)
这可以通过以下方式完成:
df.filter(regex='x').apply(lambda c: 2*c)
但没有到位。我的解决方案是:
tmp = df.filter(regex='x')
tmp = tmp.apply(lambda c: 2*c)
tmp['t'] = df['t']
df = tmp
增加了更改列顺序的问题。有没有更好的办法?
【问题讨论】:
-
我刚刚对你的问题投了赞成票……你现在有足够的代表来投票。随意对您接受的答案进行投票。