原始方法:生成ndarray,插入,删除原来的那列,把插入的列更名
two = np.zeros(`len(df_data))# 生成一个ndarray,装要插入的值
for i in range(len(df_data)):# 按条件修改two
two[i] = df_data["pe_ttm"][i]["weightedAvg"]
f_data.insert(1, 'pe_ttm1', two)# 完成后将two插入dataframe中,1表示插入到第二个
del df_data['pe_ttm']
df_data.rename(columns={"pe_ttm1":"pe_ttm"}, inplace=True)
#这么多行等于一行
新方法dataframe的apply,当一个函数的参数存在于一个元组或者一个字典中时,用来间接的调用这个函数
中间写一个函数(或者匿名函数)
例子一:不管你是传进来第几行的数据(x的值),我都变成1
df_data["pe_ttm"]=df_data["pe_ttm"].apply(lambda x: 1)
例子二:
#数据清洗,将原来的那列的{‘weightedAvg’: 25.4987080756439}取其中的float
pe_ttm
{'weightedAvg': 21.4987080756439}
{'weightedAvg': 22.4987080756439}
{'weightedAvg': 23.4987080756439}
更新列:pe_ttm
df_data["pe_ttm"] = df_data["pe_ttm"].apply(lambda x: float(str(x)[16:-1]))
增加列:hello
df_data["hello"] = df_data["pe_ttm"].apply(lambda x: float(str(x)[16:-1]))