使用Python对xlsx,csv, txt格式文件进行读、写并绘图

0. 背景

最近需要用到python通过读取,写入Excel数据,并画一些图。虽然以前学过一些,但是都忘得差不多了,故翻出以前学习的资料,整理在此,常用常新,也方便自己以后复习。

1. 通过pandas库在Python里写入数据到Excel,并生成本地文件(001)

代码:

import pandas as pd

df = pd.DataFrame({'ID':(1,2,3),'Name':('Tim','Victor','Nick')})
df = df.set_index('ID')
df.to_excel('D:/py学习/Python_EXCEL/output.xlsx')
print('Done!')

输出样式:

使用Python对xlsx,csv, txt格式文件进行读、写并绘图
  1. 通过pandas库读取本地Excel文件,并直接在Python里显示(002)

代码:

import pandas as pd

Incites = pd.read_excel('D:/py学习/Python_EXCEL/Incites.xlsx')
print(Incites.shape)
print(Incites.columns)
print(Incites.head(3))
print('========================')
print(Incites.tail(3))

输出样式:

使用Python对xlsx,csv, txt格式文件进行读、写并绘图
  1. 通过pandas库在Python里写多行多列数据的格式(不生成本地文件)(003)

代码:

import pandas as pd

s1 = pd.Series([1,2,3],index = [1,2,3],name = 'A')
s2 = pd.Series([10,20,30],index = [1,2,3],name = 'B')
s3 = pd.Series([100,200,300],index = [2,3,4],name = 'C')

df = pd.DataFrame({s1.name:s1,s2.name:s2,s3.name:s3})

print(df)

输出样式:

使用Python对xlsx,csv, txt格式文件进行读、写并绘图
  1. 通过pandas将本地Excel中的数据排序,分类,并直接在Python里显示(007)

代码:

import pandas as pd

products = pd.read_excel('D:/py学习/Python_EXCEL/List.xlsx', index_col='ID')

products.sort_values(by=['Worthy', 'Price'], inplace=True, ascending=[True, False])
print(products)

输出样式:

使用Python对xlsx,csv, txt格式文件进行读、写并绘图

使用Python对xlsx,csv, txt格式文件进行读、写并绘图
  1. 通过pandas库在Python实现对本地Excel中数值大小范围的筛选,将直接在Python里显示(不保存到原Excel文件)(008)

初始数据:

使用Python对xlsx,csv, txt格式文件进行读、写并绘图
对学生的Age(18-30)和分数(85-100)两个参数进行筛选。

代码:

import pandas as pd

def age_18_to_30(a):
    return a>=18 and a30

def level_a(s):
    return s>=85 and s100

students = pd.read_excel('D:/py学习/Python_EXCEL/Students.xlsx', index_col='ID')

students = students.loc[students['Age'].apply(age_18_to_30)].loc[students['Score'].apply(level_a)]

print(students)

输出样式:

使用Python对xlsx,csv, txt格式文件进行读、写并绘图
  1. 通过pandas库读取本地Excel文件,并通过matplotlib在Python里画出柱形图(bar_chart)(009)

原数据:

使用Python对xlsx,csv, txt格式文件进行读、写并绘图

将该数据画成直方图

代码:

import pandas as pd
import matplotlib.pyplot as plt

students = pd.read_excel('D:/py学习/Python_EXCEL/Res_areas.xlsx')
students.sort_values(by='Documents_number', inplace=True, ascending=False)
print(students)

plt.bar(students.Name, students.Documents_number, color='orange')
plt.xticks(students.Name, rotation='90')
plt.xlabel('Name')
plt.ylabel('Documents_number')
plt.title('Wos of Science Res_areas')
plt.tight_layout()
plt.show()

输出样式:

使用Python对xlsx,csv, txt格式文件进行读、写并绘图
  1. 通过pandas库读取本地Excel文件,并通过matplotlib在Python里画出双柱形图(double_bar_chart)(010)

原数据:

使用Python对xlsx,csv, txt格式文件进行读、写并绘图
将该数据画成双柱形图

代码:

import pandas as pd
import matplotlib.pyplot as plt

students = pd.read_excel('D:/py学习/Python_EXCEL/Res_areas_double.xlsx')
students.sort_values(by='2021', inplace=True, ascending=False)
print(students)
students.plot.bar(x='Res_areas', y=['2020', '2021'], color=['orange','r' ])
plt.title('Wos of Science Res_areas',fontsize=16,fontweight='bold')
plt.xlabel('Res_areas', fontweight='bold')
plt.ylabel('Documents_number', fontweight='bold')
ax = plt.gca()
ax.set_xticklabels(students['Res_areas'], rotation='45', ha='right')
f = plt.gcf()
f.subplots_adjust(left=0.2,bottom=0.45)

plt.show()

输出样式:

使用Python对xlsx,csv, txt格式文件进行读、写并绘图

8. 通过pandas库读取本地Excel文件,并通过matplotlib在Python里画出堆叠柱形图(stacked_chart)(011)

原数据:

使用Python对xlsx,csv, txt格式文件进行读、写并绘图
将该数据画成堆叠柱形图

代码:

import pandas as pd
import matplotlib.pyplot as plt

users = pd.read_excel('D:/py学习/Python_EXCEL/Users.xlsx')
users['Total'] = users['Oct'] + users['Nov'] + users['Dec']
users.sort_values(by='Total', inplace=True, ascending=True)
print(users)

users.plot.barh(x='Name', y=['Oct', 'Nov', 'Dec'], stacked=True, title='User Behavior')

plt.tight_layout()
plt.show()

输出样式:

使用Python对xlsx,csv, txt格式文件进行读、写并绘图

9. 通过pandas库读取本地Excel文件,并通过matplotlib在Python里画出饼图(piechart)(012)

原数据:

使用Python对xlsx,csv, txt格式文件进行读、写并绘图

将该数据画成饼图

代码:

import pandas as pd
import matplotlib.pyplot as plt

papers = pd.read_excel('D:/py学习/Python_EXCEL/papers.xlsx', index_col='国家/地区')
print(papers)

papers['2020'].plot.pie(fontsize=8, counterclock=False, startangle=-270)

plt.title('Source of Web of Science Papers', fontsize=16, fontweight='bold')
plt.ylabel('2020', fontsize=12, fontweight='bold')
plt.show()

输出样式:

使用Python对xlsx,csv, txt格式文件进行读、写并绘图

10. 通过pandas库读取本地Excel文件,并通过matplotlib在Python里画出堆积图(stacked_area_chart)(013)

原数据:

使用Python对xlsx,csv, txt格式文件进行读、写并绘图

; 10.1 将该数据画成堆积图

代码:

import pandas as pd
import matplotlib.pyplot as plt

years = pd.read_excel('D:/py学习/Python_EXCEL/Years.xlsx', index_col='Year')
print(years)
print(years.columns)

years.plot.area(y=['USA', 'China', 'UK'])

plt.title('Source of Country', fontsize=16, fontweight='bold')
plt.ylabel('Number of Papers', fontsize=12, fontweight='bold')
plt.xticks(years.index, fontsize=8, rotation='45', ha='right')
plt.show()

输出样式:

使用Python对xlsx,csv, txt格式文件进行读、写并绘图

10.1 将该数据画成折线图(区别只在代码第8行plot少了.area)

代码:

import pandas as pd
import matplotlib.pyplot as plt

years = pd.read_excel('D:/py学习/Python_EXCEL/Years.xlsx', index_col='Year')
print(years)
print(years.columns)

years.plot.area(y=['USA', 'China', 'UK'])

plt.title('Source of Country', fontsize=16, fontweight='bold')
plt.ylabel('Number of Papers', fontsize=12, fontweight='bold')
plt.xticks(years.index, fontsize=8, rotation='45', ha='right')
plt.show()

输出样式:

使用Python对xlsx,csv, txt格式文件进行读、写并绘图

11. 通过pandas库读取本地Excel文件,并通过matplotlib在Python里画出散点图(Bar_chart)(011)

原数据:

使用Python对xlsx,csv, txt格式文件进行读、写并绘图

将该数据第二三列前五行画成散点图

代码:

import pandas as pd
import matplotlib.pyplot as plt

pd.options.display.max_columns = 777
names = pd.read_excel('C:/Users/WJ/Desktop/Python_EXCEL/Names.xlsx')
print(names.head())

names.plot.scatter(x='Documents', y='Times_cited')
plt.show()

输出样式:

使用Python对xlsx,csv, txt格式文件进行读、写并绘图

12. 通过pandas库读取本地Excel文件,并通过matplotlib在Python里画出直方图(Histogram)(015)

注:关于直方图和柱形图的差别如下:
直方图一般用来描述等距数据或等比数据;柱形图一般用来描述称名数据或顺序数据。. 直观上,直方图矩形之间是衔接在一起的,表示数据间的数学关系;柱形图则留有空隙,表示仅作为两个或多个不同的类,而不具有数学相关性质。

原数据:

使用Python对xlsx,csv, txt格式文件进行读、写并绘图

将该数据第二三列前五行画成直方图

代码:

import pandas as pd
import matplotlib.pyplot as plt

pd.options.display.max_columns = 777
names = pd.read_excel('D:/py学习/Python_EXCEL/Names.xlsx')
print(names.head())

names.Times_cited.plot.hist(bins=100)
plt.xticks(range(0, max(names.Times_cited), 500), fontsize=8, rotation=90)

print(names.corr())

plt.tight_layout()
plt.show()

输出样式:

使用Python对xlsx,csv, txt格式文件进行读、写并绘图

13. 通过pandas库读取本地Excel文件,并在Python将其转置输出(021)

原数据:

使用Python对xlsx,csv, txt格式文件进行读、写并绘图
将该数据第二三列前五行画成散点图

代码:

import pandas as pd

pd.options.display.max_columns=999
videos = pd.read_excel('D:/py学习/Python_EXCEL/Videos.xlsx', index_col='Month')
table = videos.transpose()
print(table)

输出样式:

使用Python对xlsx,csv, txt格式文件进行读、写并绘图

14. 通过pandas库读取本地csv格式文件,并在Python将其输出(022)

原数据:

使用Python对xlsx,csv, txt格式文件进行读、写并绘图

代码:

import pandas as pd

pd.options.display.max_columns=999

students1 = pd.read_csv('D:/py学习/Python_EXCEL/Incites_Pulication.csv')
print(students1)

输出样式:

使用Python对xlsx,csv, txt格式文件进行读、写并绘图

15. 通过pandas库读取本地csv格式文件,并在Python将其输出(022)

原数据:

使用Python对xlsx,csv, txt格式文件进行读、写并绘图

代码:

import pandas as pd

pd.options.display.max_columns=999

students2 = pd.read_csv('D:/py学习/Python_EXCEL/info.txt')
print(students2)

输出样式:

使用Python对xlsx,csv, txt格式文件进行读、写并绘图

15. 通过pandas库读取本地csv格式文件,再通过scipy库对数据进行线性回归分析,并用matplotlib在Python将其输出(022)

原数据:

使用Python对xlsx,csv, txt格式文件进行读、写并绘图

代码:

import pandas as pd
import matplotlib.pyplot as plt
from scipy.stats import linregress

num = pd.read_excel('D:/py学习/Python_EXCEL/Trendency.xlsx')
print(num)

slope, intercept, r, p, std_err=linregress(num.Year, num.USA)

exp = num.Year*slope+intercept

plt.scatter(num.Year, num.USA)
plt.plot(num.Year, exp, color='orange')
plt.title(f"y={slope}*x+{intercept}")
plt.xticks(num.Year,  rotation=90)
plt.tight_layout()
plt.show()

print(slope*35+intercept)

输出样式:

使用Python对xlsx,csv, txt格式文件进行读、写并绘图

Original: https://blog.csdn.net/weixin_46915208/article/details/124061914
Author: 学吧 学无止境
Title: 使用Python对xlsx,csv, txt格式文件进行读、写并绘图

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/675669/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球