在Python中将列值转换为dataframe时变为Nan

2024-05-06 15:39:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在将每天数据的平均值转换为数据帧。代码如下:

#find the mean
mean_paymentAmount= data_2015.groupby('paymentDate')['paymentAmount'].mean()
mean_loanAmount= data_2015.groupby('paymentDate')['loanAmount'].mean()

df = pd.DataFrame()
df["Loan Amount"] = mean_loanAmount
df["Payment Amount"] = mean_paymentAmount
df["Payment Date"] = paymentDate
paymentDate.reset_index()
df

我应该修正什么,使表右侧的索引成为一个适当的索引(0到1),并且“付款日期”成为一个适当的列


Tags: the数据代码dfdatafindpaymentmean
3条回答

您不需要插入Payment Date列,因为它已经在dataframe的索引中

如果要将其转换为列,请使用paymentDate.reset_index()而不是insert

#find the mean
paymentDate = data_2015['paymentDate']
mean_paymentAmount= data_2015.groupby('paymentDate')['paymentAmount'].mean()
mean_loanAmount= data_2015.groupby('paymentDate')['loanAmount'].mean()
df = mean_loanAmount.to_frame()
df_payment = mean_paymentAmount.to_frame()

#transform into dataframe
df.columns = ["Loan Amount"]
df.insert(1, "Payment Amount", df_payment, True)
df.reset_index(inplace=True)
df

相反,创建一个如下所示的数据帧

df=pd.DataFrame()

df[“贷款金额”]=贷款金额

df[“付款金额”]=df_付款

df[“付款日期”]=付款日期

试试这个,看看它是否有效-

df = data_2015.groupby(['paymentDate']).agg(mean_payment=('paymentAmount', 'mean'), mean_loan=('loanAmount', 'mean')).reset_index()
df.columns = ['Payment Date', 'Payment Amount', 'Loan Amount']

相关问题 更多 >