python - Pandas Dataframe 添加带有 lambda 函数的列

标签 python python-3.x pandas dataframe lambda

我正在尝试使用两个大写字母的随机生成代码向我的 Pandas Dataframe 添加一列。对于随机代码生成,我编写了一个函数,但是当我将它添加到数据帧时,它只给我 NaN 作为结果。知道如何解决这个问题吗?

import pandas as pd
import random
import string

def generateCode():
    return random.choice(string.ascii_uppercase) + random.choice(string.ascii_uppercase)

cars = {'Brand': ['Honda Civic','Toyota Corolla','Ford Focus','Audi A4'],
        'Price': [22000,25000,27000,35000]
        }
df = pd.DataFrame(cars, columns = ['Brand', 'Price'])

df['Code'] = df.apply(lambda x: generateCode())

print(df)
给出输出:
            Brand  Price Code
0     Honda Civic  22000  NaN
1  Toyota Corolla  25000  NaN
2      Ford Focus  27000  NaN
3         Audi A4  35000  NaN
感谢任何帮助!

最佳答案

使用 Series.apply 处理每个值:

df['Code'] = df['Brand'].apply(lambda x: generateCode())

print(df)
            Brand  Price Code
0     Honda Civic  22000   AY
1  Toyota Corolla  25000   EN
2      Ford Focus  27000   VN
3         Audi A4  35000   ZZ
DataFrame.apply axis=1每行处理:
df['Code'] = df.apply(lambda x: generateCode(), axis=1)

print(df)
            Brand  Price Code
0     Honda Civic  22000   AY
1  Toyota Corolla  25000   EN
2      Ford Focus  27000   VN
3         Audi A4  35000   ZZ

关于python - Pandas Dataframe 添加带有 lambda 函数的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64385542/

相关文章:

python - 使用 python blogger api 时状态参数不起作用

python - pandas:在 groupby 时为每个子组添加总行(特别是对于非加法方法,例如 `nunique` )

python - 将多索引数据帧的子集除以字典中的值

python - 将 numpy 整数数组转换为 12 位二进制

python-3.x - Pandas系列垂直合并

python - 如何在Python中检测字符串,无论大写、小写、有/没有空格?

python - 将flutter中的文本数据发送到flask api并webview返回的html

python - 按 ID 对列求和,但跳过第一个实例?

python - python中虚拟变量之间的交互

python - 在 Ubuntu 14.04 上将 qtopengl 导入到 Python 3