我正在尝试使用两个大写字母的随机生成代码向我的 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/