Python入门:向已有DataFrame添加随机变量报错,求排查原因
代码中的错误及修正方案
- 错误1:不存在
nrows()函数
pandas中没有nrows()这个内置函数,要获取DataFrame的行数,应该使用df.shape[0]或者len(df),同时你写的nrows(df,)里多了一个多余的逗号,属于语法错误。 - 错误2:括号未闭合
np.random.randint这一行的括号没有写完,末尾缺少两个闭合括号(一个对应size的括号,一个对应randint函数的括号),会导致Python语法解析失败。 - 错误3:生成的数组长度不匹配
即便行数获取正确,你写的+1会让income_5的长度比DataFrame的行数多1,赋值给df['income5']时会因为长度不一致报错——你的DataFrame有10行,生成11个随机数无法和每行对应。
修正后的代码
import pandas as pd import numpy as np data=[10, 20, 30, 40, 50, 60, 70, 80, 90, 100] df=pd.DataFrame(data, columns=['age']) # Add income: income_5 = np.random.randint(low=0, high=4, size=df.shape[0]) # 也可以用len(df)替代df.shape[0] df['income5'] = income_5
内容的提问来源于stack exchange,提问作者Stata_user
相关产品推荐
相关产品推荐

