python功能实现笔记

目录

词频统计绘图

python实现计数

pandas词频统计并排序

词云绘图

matpoltlib绘图

折线图

柱状图

 

文件操作

操作函数的方法

访问方式

读写操作

python基础读写txt文件操作

pandas读写excel文件操作

pandas读写 txt/csv 文件操作

数据操作

列表转字典

字典转列表

列表数据去重

列表截取

字符串操作

字符串合并

 字符串分割截取

正则检索特殊字符

mysql数据库

动态数据的sql语句


词频统计绘图

python实现计数

list=[]
dit={}
for i in 迭代对象:
    if i not in list:
        list.append(i)
        dit[f'{i}']=1
    else:
        dit[f'{i}']+=1
print(dit)

pandas词频统计并排序

import pandas as pd
all_list = ['a', 'b' , 'a', 'c']
ds = pd.Series(all_list).value_counts()
print(ds[:10])

词云绘图

import matplotlib.pyplot as plt
import wordcloud

all_list = ['w','w','s','w','a','w','x','x','w','w','w','x','x','a','a','a']
strs = ' '.join(all_list)
wordcloud=wordcloud.WordCloud(font_path='simhei.ttf',background_color='black').generate(strs)
plt.imshow(wordcloud)
plt.axis('off')
plt.show()

 python功能实现笔记_第1张图片

matpoltlib绘图

折线图

import matplotlib.pyplot as plt
plt.rcParams['font.family']=['SimHei']  # 设置字体
plt.figure(figsize=(7,7))  # 白板大小
month=['1月','2月','3月','4月','5月','6月']  #参数x
telephone=[100,90,105,110,85,120]  # 参数y
plt.plot(month,telephone,label='话费',color='y',linestyle=':',marker='v')
# 默认 第一个参数是x 第二个是y
plt.show()

 python功能实现笔记_第2张图片

柱状图

import matplotlib.pyplot as plt

name_list = ['Monday', 'Tuesday', 'Friday', 'Sunday']
num_list = [1.5, 0.6, 7.8, 6]
plt.bar(range(len(num_list)), num_list, tick_label=name_list)
plt.show()

python功能实现笔记_第3张图片

饼状图

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']='SimHei'#设置中文显示
plt.figure(figsize=(6,6))#将画布设定为正方形,则绘制的饼图是正圆
label=['第一','第二','第三']#定义饼图的标签,标签是列表
explode=[0.01,0.01,0.01]#设定各项距离圆心n个半径
#plt.pie(values[-1,3:6],explode=explode,labels=label,autopct='%1.1f%%')#绘制饼图
values=[4,7,9]
plt.pie(values,labels=label)#绘制饼图
plt.title('饼图')#绘制标题
plt.savefig('')#保存图片
plt.show()

 

 

文件操作

操作函数的方法

方法 说明
open() 打开文件,返回文件操作对象
write() 执行写入
read() 执行读出,返回读取内容
close() 关闭文件

访问方式

访问方式 说明
r(read) 只读方式打开文件。文件的指针将会放在文件的开头,这是默认模式。如果文件不存在,抛出异常
w(write) 只写方式打开文件。如果文件存在会被覆盖。如果文件不存在,创建新文件
a 追加方式打开文件。如果该文件已存在,文件指针将会放在文件的末尾。如果文件不存在,创建新文件进行写入
r+ 读写方式打开文件。文件的指针将会放在文件的开头。如果文件不存在,抛出异常
a+ 读写方式打开文件。如果该文件已存在,文件指针将会放在文件的结尾。如果文件不存在,创建新文件进行写入
w+ 读写方式打开文件。如果文件存在会被覆盖如果文件不存在,创建新文件

读写操作

python基础读写txt文件操作

# 一次性获取所有内容,内容过多会占用大量内存
with open('绝对路径','r',encoding='utf-8') as f:
    text=f.read()
    f.close()
    print(text)

# 逐行获取内容
with open('绝对路径','r',encoding='utf-8') as f:
    while True:
        # 读取一行内容
        text = file.readline()
        # 判断是否读到内容
        if not text:
            break
       # 每读取一行的末尾已经有了一个 ''
        print(text, end="")

# 写入
with open('绝对路径','w',encoding='utf-8') as f:
    f.write(text)
    f.close()

pandas读写excel文件操作

import pandas as pd

text = pd.read_excel('excel的绝对路径',sheet_name=xx) 
#单sheet无需加sheet_name


text_dit={'列名':[行1内容,行2内容,.....,行n内容]}
data = pd.DataFrame(text_dit) # 转变成可执行对象
data.to_excel('绝对路径,没有目标文件则创建','访问方式',index=None)
#index需要时则可以不写,默认在第一列增加一个行自增序列

# excel表在python内展开格式为 text = {'列1':[行],'列2':[行]}

pandas读写 txt/csv 文件操作

import pandas as pd

text = pd.read_csv('绝对路径', sep='\t', encoding='utf-8',header=None)
# sep为分隔符  
# 如果没有列名则将header=None 否则默认第一行为列名
# text为numpy的矩阵格式。返回的是一个表格。
print(text.values()[][]) # 返回数据表格,不包含列名 可通过逐级索引导出所需内容
print(text.keys()) # 返回列名索引,不包含数据表格

text = pd.DataFrame(text)
text.to_csv('绝对路径', sep='\t', index=False,mode ='a/w',encoding='utf-8') 
# 将numpy格式数据写入目标文件中

数据操作

列表转字典

# 依据元组列表转成字典
list = [(索引,值),(索引,值),(索引,值)]
d1 = dict(list)
print(d1)
# output = {索引:值,索引:值,索引:值}

# 两个等长列表合并成字典
list1 = [索引1,索引2,索引3,索引4]
list2 = [值1,值2,值3,值4]
print(dict(zip(list1,list2)))
# output = {索引1:值1,索引2:值2,索引3:值3,索引4:值4}

字典转列表

# 单独获取索引值组成列表
dit = {'one':1,'two':2}
dit_key_list=[]
for i in dit.keys():
    dit_key_list.append(i)
print(dit_key_list)
# output = [one,two]

# 单独获取values值组成列表
dit = {'one':1,'two':2}
dit_values_list=[]
for i in dit.values():
    dit_values_list.append(i)
print(dit_values_list)
# output = [1,2]

#同时获取
dit = {'one':1,'two':2}
dit_key_list=[]
dit_values_list=[]
for i in dit.keys():
    dit_key_list.append(i)
    dit_values_list.append(dit[i])
print(dit_key_list)
print(dit_values_list)
# output = [one,two]
# output = [1,2]

列表数据去重

lists = [1,2,3,1,2,3]
lists = list(set(lists))
print(lists)
# output = [1,2,3]

列表截取

lists = [1,2,3,4,5,6,7,8,9]
lists1 = lists[起始元素索引:终止元素索引:步长]
print(lists1)
#假设 [:5]则
#output =[1, 2, 3, 4, 5]

字符串操作

字符串合并

简单合并

str = '1234'
str1 = 'onetwothreefour'
str2 = str+str1
print(str2)
#output = '1234onetwothreefour'

列表元素合并成字符串

list1=['1','2','3','4','5']
str = '-'.join(list1)
print(str)
# output = '1-2-3-4-5'

 字符串分割截取

字符串依据分隔符分割

str='1-2-3-4-5-6-7'
list = str.split('-',num)
print(list)
# output = ['1', '2', '3', '4', '5', '6', '7']
# num为截取出几个子字符串 如果为2 则
# new output = ['1', '2', '3-4-5-6-7']

字符串按位截取

str = '1-2-3-4-5-6-7-8-9'
str1 =str[起始位置:终止位置:步长]
print(str1)
# 起始位置不写默认从0开始,终止位置不写默认到最后,步长不写默认为1
# 假设[:5]则
#output = '1-2-3'
# 假设[:5:2]则
#output = '123'

正则检索特殊字符

import re
# 实战举例:检索出带有特殊字符的字符串,并加上``标识
list_values=[]
if re.search("\W+",str) == None:
    list_values.append(str)
else:
    content = str
    list_values.append(f'`{str}`')

mysql数据库

动态数据的sql语句

import re
list1 = ['特征1','特征:2','特征3']
list2 = ['值1','值:2','值3']
表名='表名'
# sql标准化
# 用正则检索出所有带有特殊字符的字符串,并规整化
def sql标准化(list_str):
    list=[]
    for i in list_str:
        if re.search("\W+",i) == None:
            list.append(i)
        else:
            content = i
            list.append(f'`{i}`')
    return list
str1=','.join(sql标准化(list1))
str2=''
for i in sql标准化(list2):
    str2+=f' "{i}",'
str2=str2[:-1]
sql = f'INSERT INTO {表名}({str1}) VALUES({str2})'
print(str1)
print(str2)
print(sql)
# output = 特征1,`特征:2`,特征3
# output = "值1", "`值:2`", "值3"
# output = INSERT INTO 表名(特征1,`特征:2`,特征3) VALUES( "值1", "`值:2`", "值3")

你可能感兴趣的:(python,pandas,数据分析)