plt.figure(4) D=data.iloc[:,0] D=list(D.unique()) listl=[] for d in D: dt=data.loc[data['车次']==d,['上车人数']] s=dt.sum() listl.append(s['上车人数'])
时间: 2024-01-17 10:02:55 浏览: 28
这段代码的作用是统计数据集中每个车次的上车人数总和,并将结果存储在一个列表中。具体来说,代码首先创建一个名为4的新图形窗口,然后使用Pandas库中的iloc函数选择数据集的第一列(即车次列),并使用unique函数获取该列中的唯一值。接着,代码循环迭代所有唯一的车次值。在每次迭代中,代码使用loc函数选择数据集中车次列等于当前车次值的行,并选择“上车人数”列。然后,代码使用sum函数计算该组行中“上车人数”列的总和,并将结果添加到名为listl的列表中。最终,代码返回一个包含所有车次总上车人数的列表。
相关问题
sns.pairplot(data[column],diag_kind='kde') plt.savefig('Scatter plot.jpg',dpi=256) #Pearson's correlation coefficient heatmap corr = plt.figure(figsize = (10,10),dpi=128) corr= sns.heatmap(data[column].corr(),annot=True,square=True) plt.xticks(rotation=40) import statsmodels.formula.api as smf all_columns = "+".join(data.columns[1:]) print('x is :'+all_columns) formula = 'GDP~' + all_columns print('The regression equation is :'+formula) results = smf.ols(formula, data=data).fit() results.summary() X=data.iloc[:,1:] y=data.iloc[:,0]
这段代码实现了以下功能:
首先,使用"sns.pairplot(data[column],diag_kind='kde')"绘制了一个散点图矩阵,并选择了核密度估计作为对角线上的图形。
然后使用"plt.savefig('Scatter plot.jpg',dpi=256)"将图形保存为名为"Scatter plot.jpg"的文件,分辨率为256 dpi。
接下来,创建一个名为"corr"的图形对象,大小为(10,10),分辨率为128,使用"corr = plt.figure(figsize=(10,10), dpi=128)"。
然后,使用"sns.heatmap(data[column].corr(),annot=True,square=True)"绘制基于"data[column]"数据框的列之间的皮尔逊相关系数热力图,并设置"annot=True"以在每个单元格中显示相关系数的值,"square=True"表示将单元格设置为正方形。
通过"plt.xticks(rotation=40)"可以旋转x轴刻度标签,使其更易读。
接下来,导入"statsmodels.formula.api"模块,并使用"all_columns = "+".join(data.columns[1:])"将"data"数据框中除第一列外的所有列名拼接为一个字符串,存储在名为"all_columns"的变量中。
然后,打印出"x is :"以及"all_columns"的值,显示回归方程中自变量的组成。
继续打印出"The regression equation is :"以及"formula"的值,显示回归方程的形式。
接下来,使用"smf.ols(formula, data=data).fit()"进行普通最小二乘(OLS)回归分析,将结果存储在名为"results"的变量中。
最后,通过"X=data.iloc[:,1:]"将"data"数据框中除第一列外的所有列作为自变量存储在名为"X"的变量中,通过"y=data.iloc[:,0]"将"data"数据框的第一列作为因变量存储在名为"y"的变量中。
data = data.iloc[:10, :]改成取后10行
要取后10行数据,可以使用 `data.iloc[-10:, :]`,其中 `-10:` 表示从倒数第10行开始,一直到最后一行。完整的代码如下:
```
select_sqli ="SELECT time,SUM(CASE WHEN type_c='两厢车' THEN xiaoliang ELSE 0 END)/SUM(xiaoliang) AS ratio,1 - SUM(CASE WHEN type_c='两厢车' THEN xiaoliang ELSE 0 END)/SUM(xiaoliang) AS ratio_complement FROM sheji.sale GROUP BY time;"
cur.execute(select_sqli)
data = pd.DataFrame(cur.fetchall(), columns=['time', 'portion','r_portion'])
data = data.set_index('time')
data = data.sort_index(ascending=False)
data = data.iloc[-10:, :] # 取后10行数据
plt.figure(figsize=(9.42,1))
data.plot(kind='bar', stacked=True, x='time')
plt.title('Sales Ratio of Different Categories')
plt.xlabel('Category')
plt.ylabel('Ratio')
plt.xticks(rotation=90)
plt.savefig('portion.png',dpi=300)
pix = QPixmap("portion.png")
new_width = self.Market.label_4.width()
new_height = int(pix.height() * new_width / pix.width())
scaled_pixmap = pix.scaled(QSize(new_width, new_height), Qt.AspectRatioMode.KeepAspectRatio,Qt.TransformationMode.SmoothTransformation)
self.Market.label_4.setPixmap(scaled_pixmap)
plt.close()
```
这样就可以取后10行数据了。