gpt4 book ai didi

python Pandas : Add column based on other column

转载 作者:太空狗 更新时间:2023-10-30 01:00:22 24 4
gpt4 key购买 nike

我是 pandas 的新手,对它很困惑,尤其是与列表和使用列表推导式相比。

我有一个包含 4 列的数据框。我想根据第 4 列“m”创建第 5 列“c”。我可以通过对“m”列中的每一行应用我的函数来获取“c”的值。

如果“m”是一个列表并且使用列表理解它会是

c = [myfunction(x) for x in m]

如何将此“逻辑”应用于数据框?

最佳答案

您可以 assign - 来自 doc 的示例:

import pandas as pd
import numpy as np

df = pd.DataFrame({'A': range(1, 11), 'B': np.random.randn(10)})
print df
A B
0 1 0.769028
1 2 -0.392471
2 3 0.153051
3 4 -0.379848
4 5 -0.665426
5 6 0.880684
6 7 1.126381
7 8 -0.559828
8 9 0.862935
9 10 -0.909402

df = df.assign(ln_A = lambda x: np.log(x.A))
print df
A B ln_A
0 1 0.769028 0.000000
1 2 -0.392471 0.693147
2 3 0.153051 1.098612
3 4 -0.379848 1.386294
4 5 -0.665426 1.609438
5 6 0.880684 1.791759
6 7 1.126381 1.945910
7 8 -0.559828 2.079442
8 9 0.862935 2.197225
9 10 -0.909402 2.302585

apply 评论的 Lu Qi

有时 lambda 函数很有用:

import pandas as pd
import numpy as np

df = pd.DataFrame({'A': range(1, 11), 'B': np.random.randn(10)})

df['ln_A'] = df['A'].apply(np.log)
df['round'] = df['B'].apply(lambda x: np.round(x, 2))
print df

A B ln_A round
0 1 -0.982828 0.000000 -0.98
1 2 2.306111 0.693147 2.31
2 3 0.967858 1.098612 0.97
3 4 -0.286280 1.386294 -0.29
4 5 -2.026937 1.609438 -2.03
5 6 0.061735 1.791759 0.06
6 7 -0.506620 1.945910 -0.51
7 8 -0.309438 2.079442 -0.31
8 9 -1.261842 2.197225 -1.26
9 10 1.079921 2.302585 1.08

关于 python Pandas : Add column based on other column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35424567/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com