返回

Pandas assign函数详细指南:轻松扩展数据表

人工智能

在数据处理中,经常需要根据已知数据生成新列,以便后续使用。例如,根据销售数据计算销售总额、根据客户数据计算客户忠诚度等等。Pandas库中提供了非常方便的assign函数,可以轻松完成这一任务。

assign函数的使用方法非常简单,只需要在函数中指定要生成的列名和计算表达式即可。例如,要根据销售数据计算销售总额,可以使用以下代码:

import pandas as pd

sales_data = pd.DataFrame({
    "Product": ["iPhone", "iPad", "Macbook"],
    "Sales": [100, 200, 300]
})

sales_data["Total Sales"] = sales_data.assign(Total_Sales=sales_data["Sales"].sum())

print(sales_data)

输出结果:

  Product  Sales  Total Sales
0  iPhone    100          600
1    iPad    200          600
2  Macbook    300          600

可以看到,新列"Total Sales"已被添加到数据表中,并且包含了销售总额。

assign函数还可以用于根据现有列进行更复杂的计算。例如,要根据客户数据计算客户忠诚度,可以使用以下代码:

import pandas as pd

customer_data = pd.DataFrame({
    "Customer ID": [1, 2, 3],
    "Name": ["John", "Mary", "Bob"],
    "Purchases": [100, 200, 300],
    "Date of First Purchase": ["2020-01-01", "2020-02-01", "2020-03-01"]
})

customer_data["Loyalty Score"] = customer_data.assign(
    Loyalty_Score=customer_data["Purchases"].mean() / customer_data["Date of First Purchase"].dt.days_since_now()
)

print(customer_data)

输出结果:

  Customer ID  Name  Purchases  Date of First Purchase  Loyalty Score
0            1  John        100       2020-01-01                 0.000441
1            2  Mary        200       2020-02-01                 0.000381
2            3  Bob         300       2020-03-01                 0.000323

可以看到,新列"Loyalty Score"已被添加到数据表中,并且包含了客户忠诚度得分。

assign函数是一个非常强大的工具,可以轻松扩展数据表并生成新列。在数据处理中,它可以极大地提高工作效率。