大家好,
小弟python新手,最近练习pandas时面临一个问题
恳请大家协助
假设我有一个共A B C D 四栏五列的dataframe 'df',
其中A栏为[20, 39, 41, 85, 11]的随机数,
现在我想要将A栏中小于40的数+10,大于等于40的数-5,
(同时,所以最终39要变成49,而不是44)
请问该怎么处理呢?
直觉地想到就是
if df['A'] > 40:
df['A] += 10
...
但很明显series没办法这样处理。
之前学到的方式,大多是使用新建df的方法处理
df2 = df[df['A'] > 40]
df2['A'] += 10
然而一来是这样原来的df并没有更动,而且一次只能用一个条件来筛选,颇为冗长
再来我也不会用新建的series来取代(毕竟长度不同,有这种方法吗?)
恳请版上各位先进指教了,
该怎么才能直接修改原来的df,
或是提点有什么方向可以去研究的,感谢!
作者: robert09080 (Aspettarei) 2022-04-29 17:18:00
You can use list comprehension, here we have alist L, L=[20,39,41,85,11], L2=[x+10 if x<40 else x-5 if x>40 else x for x in L], and df[‘B’]=L2