IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Pandas数据(去重、筛选、匹配)及plt绘图 -> 正文阅读

[人工智能]Pandas数据(去重、筛选、匹配)及plt绘图

以下是记录自己数据分析的一次历程,包括使用pandas进行数据去重、筛选、合并、获取目录内容进行匹配,其中遇到了数据表的存储和重新获取以固定表结构。包括两个表的合并,合并后数据字段的修改、筛选。最后将结果使用Matplotlib进行绘图,分别绘制柱状图和饼状图,过程中遇到如何显示中文标签,柱状图数目,如何优化图像等问题并逐一解决。

1. 数据去重

import numpy
import pandas as pd
data = pd.read_excel('data.xlsx')
#按照name1,name2,time进行去重
data.drop_duplicates(subset=['name1','name2','time'],keep='first',inplace=True)

2. 筛选出现两次及以上

#获取数据,某一列数据出现2次及以上
df = data.groupby('name2 ').filter(lambda x: len(x) > 1)

3. 按照指令列的值进行排序

#按照某两列值排序
df.sort_values(by=['name2','tiem'])

4. 获取某个属性数据最后一列

#数据保存,得到新表df1
df1 = df.sort_values(by=['name1','time'])
df1.to_excel('D:/Notebook/data1.xlsx',index = False)
df1 = pd.read_excel('D:/Notebook/data1.xlsx')

#读取并获得排序后的每一个数据最后一个
df2 = pd.read_excel('D:/Notebook/data1.xlsx')
df2.drop_duplicates(subset=['name1'],keep='last',inplace=True)
df2.to_excel('D:/Notebook/result.xlsx',index = False)
df2 = pd.read_excel('D:/Notebook/result.xlsx')

5. 关键词匹配

#关键词匹配
import os
import numpy as np
dir = "D:/Notebook/keywords/"
keywordfilenames = []
for filename in os.listdir(dir):
    if filename.endswith(".csv"):
        keywordfilenames.append(filename)
    else:
        continue
keyworddict = {}
for fname in keywordfilenames:
    keyworddict[fname.split(".")[0]] = np.concatenate(pd.read_csv(dir + fname).values)
npdata = df2.values
projs = []
for item in npdata:
    s = ""
    for ggc, cz in keyworddict.items():
        count = 0
        for kz in cz:
            try:
                if item[5].find(kz) != -1:
                    count += 1
            except:
                pass
        if count != 0:
            s = ggc
    projs.append(s)
print(projs)

7. 匹配结果写入表格

df2["dw"] = pd.DataFrame(projs)

8.?两个结果表,按照某一列进行合并,并提取需要字段?

o2o_merge = pd.merge(df1, df2, on = ['name2'], how='left')
result = o2o_merge[['name1','name2','name3']]

9.?合并结果字段名称修改

result.rename(columns={'name1':'a','name2':'b','name3':'c'},inplace=True)

10.?数据筛选,得到想要结果

#数据筛选,得到想要结果
import os
#获取当前月和日
import datetime
i = datetime.datetime.now()
os.mkdir('D:/Notebook/{}'.format(i.month,i.day))
xz = result.loc[result['dw']=='xz']
print('xz')
print(xz)
bb = result.loc[result['dw']=='bb']
print('bb')
print(bb)
xuzhou.to_excel('D:/Notebook/0428/xz.xlsx',index = False)
bengbu.to_excel('D:/Notebook/0428/bb.xlsx',index = False)

11. 获取条目数和去重结果?

total = result.loc[result['dw'] != '']['name1'].count()
people = len(result.loc[result[‘dw'] != '']['name1'].unique())

12. 结果绘制柱状图?

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
#显示中文
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False
x = ['xz','bb']
y = [len(xz['name1'].unique()),len(bb['name1'].unique())]
index = np.array(x)
plt.title('{}月{}日分布情况(人数)'.format(i.month,i.day))
# plt.xlabel('人数')
plt.ylabel('人数')
#显示标签数量
plt.bar(x=index, height=y, width=0.5, bottom=0, color='red')
for a,b in zip(x, y):
    plt.text(a,b,
             b,
             ha='center',
             va='bottom',fontsize=10)
plt.show()
#图像优化
plt.style.use('ggplot')

?13.?结果绘制饼状图?

plt.axes(aspect=1)
plt.pie(y,labels=x,autopct='%.2f%%')
plt.title(' {}月{}日分布'.format(i.month,i.day))
plt.show()

备注:

比对表data1的某一列是否出现在表data2的某一列

data1[data1['name'].isin(data2['name'])]

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-29 12:08:38  更:2022-04-29 12:11:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:56:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码