📌  相关文章
📜  根据 pandas 中其他列的条件添加新列. - Python (1)

📅  最后修改于: 2023-12-03 15:10:48.982000             🧑  作者: Mango

根据 Pandas 中其他列的条件添加新列

在 Pandas 中,我们可以根据已有的列来添加新的列。这种操作非常有用,因为我们可以根据条件对数据进行转换、筛选或者其他操作。

方法一:使用 apply 函数

我们可以使用 apply 函数来根据某些条件添加新列。例如,我们可以将一列数据进行转换,然后根据条件添加新的列。以下是一个示例:

import pandas as pd

# 创建数据表
df = pd.DataFrame({'A': [1, 2, 3, 4, 5],
                   'B': [2, 3, 4, 5, 6]})

# 添加新列
df['C'] = df['A'].apply(lambda x: x * 2 if x > 3 else x * 3)

# 输出结果
print(df)

输出:

   A  B   C
0  1  2   3
1  2  3   6
2  3  4   9
3  4  5   8
4  5  6  10

以上代码中,我们使用了 apply 函数来根据条件添加了新列 C。在这个例子中,如果 A 的值大于 3,那么就将 A 的值乘以 2 赋值给 C;否则将 A 的值乘以 3 赋值给 C

方法二:使用 where 函数

我们也可以使用 where 函数来根据条件添加新列。以下是一个示例:

import pandas as pd

# 创建数据表
df = pd.DataFrame({'A': [1, 2, 3, 4, 5],
                   'B': [2, 3, 4, 5, 6]})

# 添加新列
df['C'] = df['B'].where(df['A'] > 3, df['A'])

# 输出结果
print(df)

输出:

   A  B  C
0  1  2  1
1  2  3  2
2  3  4  3
3  4  5  5
4  5  6  6

在以上代码中,我们使用了 where 函数来根据条件添加了新列 C。在这个例子中,如果 A 的值大于 3,那么就将 B 的值赋给 C;否则将 A 的值赋值给 C

方法三:使用 numpy

最后,我们还可以使用 numpy 包来根据条件添加新列。以下是一个示例:

import pandas as pd
import numpy as np

# 创建数据表
df = pd.DataFrame({'A': [1, 2, 3, 4, 5],
                   'B': [2, 3, 4, 5, 6]})

# 添加新列
df['C'] = np.where(df['A'] > 3, df['A'] * 2, df['A'] * 3)

# 输出结果
print(df)

输出:

   A  B   C
0  1  2   3
1  2  3   6
2  3  4   9
3  4  5   8
4  5  6  10

在以上代码中,我们使用了 numpy 包的 where 函数来根据条件添加了新列 C。与方法一类似,如果 A 的值大于 3,那么就将 A 的值乘以 2 赋值给 C;否则将 A 的值乘以 3 赋值给 C