尝试在跑出来的csv文件中加入新的row。但是set不到。
同时想要直接set一下一个扇形图
import pandas as pd
import numpy as np
dataG = pd.read_csv("/Users/names/Desktop/1340 HW/Cost_of_Living_Index_2022.csv")
print("-------------------------------------------")
print(dataG)
print(dataG.index)
print("-------------------------------------------")
print(dataG.sort_values(['Cost of Living Index',
'Rent Index',
'Cost of Living Plus Rent Index',
'Groceries Index',
'Restaurant Price Index',
'Local Purchasing Power Index'],ascending = False))
print("Cost of Living Index mean is : ",dataG['Cost of Living Index'].mean())
print("Rent Index mean is: ",dataG['Rent Index'].mean())
print("Cost of Living Plus Rent Index mean is : ",dataG['Cost of Living Plus Rent Index'].mean())
print("Groceries Index mean is:",dataG['Groceries Index'].mean())
print("Restaurant Price Index mean is:",dataG['Restaurant Price Index'].mean())
print("Local Purchasing Power Index mean is:",dataG['Local Purchasing Power Index'].mean())
print("-------------------------------------------")
datasum = ["Total",dataG["Cost of Living Index"].sum(),
dataG["Rent Index"].sum(),
dataG["Cost of Living Plus Rent Index"].sum(),
dataG["Groceries Index"].sum(),
dataG["Restaurant Price Index"].sum(),
dataG["Local Purchasing Power Index"].sum()]
datamean = ["mean",dataG["Cost of Living Index"].mean(),
dataG["Rent Index"].mean(),
dataG["Cost of Living Plus Rent Index"].mean(),
dataG["Groceries Index"].mean(),
dataG["Restaurant Price Index"].mean(),
dataG["Local Purchasing Power Index"].mean()]
datavar = ["variance",dataG["Cost of Living Index"].var(),
dataG["Rent Index"].var(),
dataG["Cost of Living Plus Rent Index"].var(),
dataG["Groceries Index"].var(),
dataG["Restaurant Price Index"].var(),
dataG["Local Purchasing Power Index"].var()]
datamax = ["Total",dataG[“Cost of Living Index"].max(),
dataG["Rent Index"].max(),
dataG["Cost of Living Plus Rent Index"].max(),
dataG["Groceries Index"].max(),
dataG["Restaurant Price Index"].max(),
dataG["Local Purchasing Power Index"].max()]
datamin = ["Total",dataG["Cost of Living Index"].min(),
dataG["Rent Index"].min(),
dataG["Cost of Living Plus Rent Index"].min(),
dataG["Groceries Index"].min(),
dataG["Restaurant Price Index"].min(),
dataG["Local Purchasing Power Index"].min()]
rownum1 = len(dataG)#
dataG.loc[rownum1]=datasum
rownum1+=1
dataG.loc[rownum1]=datamean
rownum1+=1
dataG.loc[rownum1]=datavar
rownum1+=1
dataG.loc[rownum1]=datamax
rownum1+=1
dataG.loc[rownum1]=datamin
dataG.to_csv('1340 mid_Cost_of_Living_Index_2022.csv',index = False)
###### 运行结果及报错内容
Traceback (most recent call last):
File "/Users/names/Desktop/import pandas as pd.py", line 65, in
dataG.loc[rownum1]=datasum
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/pandas/core/indexing.py", line 818, in __setitem__
iloc._setitem_with_indexer(indexer, value, self.name)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/pandas/core/indexing.py", line 1785, in _setitem_with_indexer
self._setitem_with_indexer_missing(indexer, value)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/pandas/core/indexing.py", line 2160, in _setitem_with_indexer_missing
raise ValueError("cannot set a row with mismatched columns")
ValueError: cannot set a row with mismatched columns
###### 我的解答思路和尝试过的方法
###### 我想要达到的结果
**想在跑出来的csv文件中加入新的row。**
比如说
| rank | country | Cost of Living Index |
| ------ | ------ | ------ |
| 1 | Afghanistan | 20.3 |
| 2 | Albania | 35.5 |
| total | | 55.8 |
**还有一个扇形图,可以选取某两列数值的平均数画出扇形图**。
改下面这样,总和,均值的集合长度前面再加一项,让长度和dataframe一样就可以了,绘图看最后的
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from pylab import mpl
#中文乱码解决办法
mpl.rcParams['font.sans-serif'] = ['Microsoft YaHei'] # 指定默认字体:解决plot不能显示中文问题
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
dataG = pd.read_csv("Cost_of_Living_Index_2022.csv")
print("-------------------------------------------")
print(dataG)
print(dataG.index)
print("-------------------------------------------")
print(dataG.sort_values(['Cost of Living Index',
'Rent Index',
'Cost of Living Plus Rent Index',
'Groceries Index',
'Restaurant Price Index',
'Local Purchasing Power Index'],ascending = False))
print("Cost of Living Index mean is : ",dataG['Cost of Living Index'].mean())
print("Rent Index mean is: ",dataG['Rent Index'].mean())
print("Cost of Living Plus Rent Index mean is : ",dataG['Cost of Living Plus Rent Index'].mean())
print("Groceries Index mean is:",dataG['Groceries Index'].mean())
print("Restaurant Price Index mean is:",dataG['Restaurant Price Index'].mean())
print("Local Purchasing Power Index mean is:",dataG['Local Purchasing Power Index'].mean())
print("-------------------------------------------")
datasum = ["","Total",dataG["Cost of Living Index"].sum(),
dataG["Rent Index"].sum(),
dataG["Cost of Living Plus Rent Index"].sum(),
dataG["Groceries Index"].sum(),
dataG["Restaurant Price Index"].sum(),
dataG["Local Purchasing Power Index"].sum()]
datamean = ["","mean",dataG["Cost of Living Index"].mean(),
dataG["Rent Index"].mean(),
dataG["Cost of Living Plus Rent Index"].mean(),
dataG["Groceries Index"].mean(),
dataG["Restaurant Price Index"].mean(),
dataG["Local Purchasing Power Index"].mean()]
datavar = ["","variance",dataG["Cost of Living Index"].var(),
dataG["Rent Index"].var(),
dataG["Cost of Living Plus Rent Index"].var(),
dataG["Groceries Index"].var(),
dataG["Restaurant Price Index"].var(),
dataG["Local Purchasing Power Index"].var()]
datamax = ["","Max",dataG["Cost of Living Index"].max(),
dataG["Rent Index"].max(),
dataG["Cost of Living Plus Rent Index"].max(),
dataG["Groceries Index"].max(),
dataG["Restaurant Price Index"].max(),
dataG["Local Purchasing Power Index"].max()]
datamin = ["","Min",dataG["Cost of Living Index"].min(),
dataG["Rent Index"].min(),
dataG["Cost of Living Plus Rent Index"].min(),
dataG["Groceries Index"].min(),
dataG["Restaurant Price Index"].min(),
dataG["Local Purchasing Power Index"].min()]
rownum1 = len(dataG)#
dataG.loc[rownum1]=datasum
rownum1+=1
dataG.loc[rownum1]=datamean
rownum1+=1
dataG.loc[rownum1]=datavar
rownum1+=1
dataG.loc[rownum1]=datamax
rownum1+=1
dataG.loc[rownum1]=datamin
dataG.to_csv('1340 mid_Cost_of_Living_Index_2022.csv',index = False)
######绘制饼图
plt.title('Cost of Living/Rent饼图')
plt.pie([datamean[2],datamean[3]],labels=['Cost of Living Index','Rent Index'],autopct='%.2f%%')
plt.show()