gpt4 book ai didi

python - Pandas 应用功能

转载 作者:行者123 更新时间:2023-12-02 02:14:50 28 4
gpt4 key购买 nike

我正在尝试将函数应用于 pandas 数据框,我想要应用的函数是创建一个以“abc”作为值的新列。但输出并不是我所期望的。这是带有输入和输出的代码:

import pandas as pd

df = pd.read_csv("test.csv")
print(df)

# Initial Dataframe
# name age
# 0 alex 25
# 1 audrey 22

def add_one(df):
return df + 1

def create_col(df):
df["new_col"] = 'abc'


df["age_1_year"] = df["age"].apply(add_one)
df["my_col"] = df.apply(create_col)
print(df)

# name age age_1_year my_col
# 0 alex 25 26 NaN
# 1 audrey 22 23 NaN

我原本希望在“my_col”列中包含“abc”,但结果却是“NaN”。提前致谢

最佳答案

使用pandas,您希望尽可能避免apply,而是在整个SeriesDataFrame<上使用矢量化操作。如果可能,您的方法签名应该接受一个Series,操作该Series,然后返回一个您可以分配回来的Series,或者接受DataFrame,操作DataFrame并返回修改后的DataFrame。

因此,如果您想创建一个函数来将一个添加到系列中,您可以这样做:

def add_one(s: pd.Series):
return s+1

df['age_one_year'] = add_one(df['age'])
# name age age_one_year
#0 alex 25 26
#1 audrey 22 23

如果您想要一个创建静态值的函数,您可以传递并返回 DataFrame:

def add_static_column(df: pd.DataFrame, col_name, static_val):
df[col_name] = static_val
return df

df = add_static_column(df, 'new_col', 'abc')
# name age age_one_year new_col
#0 alex 25 26 abc
#1 audrey 22 23 abc

关于python - Pandas 应用功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67335440/

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