利用python对EXCEL的提取处理

项目场景:

提示:利用python处理两个EXCEL表格,表A和表B第一列均为时间,若时间相同,就将表A对应时间的那一行数据提取出来
例如:如该图中两个表所示

方案一:

采用简单的for循环,读入EXCEL数据,进行比较判断,输出保存

import xlrd
import xlwt

# 读取文件
file_A_name = "I:\\EXLA.xls"
file_B_name = "I:\\EXLB.xls"
result_to_name = "I:\\Result.xlsx"
file_A = xlrd.open_workbook(file_A_name)
file_B = xlrd.open_workbook(file_B_name)
# 读取文件中的某张表
A_sheet = file_A.sheet_by_name("风速曲线")
B_sheet = file_B.sheet_by_name("aaa")
# 创建需要保存的写入文件
workbook = xlwt.Workbook(encoding="ascii")
# 创建写入sheet
worksheet = workbook.add_sheet("same_time_date")

# 啦啦啦,第一版程序,比较耗时,并且保存结果不连续
for i in range (0,A_sheet.nrows):              # 遍历表A"风速曲线"sheet的每一行
    A_values_row1 = A_sheet.row_values(i)      # 保存第i行的数据至A_values_row1
    for j in range (0,B_sheet.nrows):          # 遍历表B"aaa"sheet的每一行
        B_values_row1 = B_sheet.row_values(j)  # 保存第i行的数据至A_values_row1
        if A_values_row1[0]==B_values_row1[0]: # 比较第一列(每一行第一个值)是否相等
            print(A_values_row1)
            # 保存相同结果
            for k in range(0,11):              # 若True,将表A第i行的12个数据保存至新建"same_time_date"sheet
                worksheet.write(i, k, A_values_row1[k])
                workbook.save(result_to_name)


# 啦啦啦 ,关于读取某行,某列,或某具体数据的方法
'''
# 读取表A第一列数据
colA_1_value = A_sheet.col_values(0)
print(colA_1_value)

# 第一行数据
rowA_1_value = A_sheet.row_values(0)
print(rowA_1_value)

# 获取第一行第一列的数据
cell_value = A_sheet.cell_value(0, 0)
print(cell_value)

# 获取表的行数
nrows = A_sheet.nrows

# 获取表的列数
ncols = A_sheet.ncols
print("nrows: %d, ncols: %d" % (nrows, ncols))

# 输出Excel中表的个数
print(file_A.nsheets)

'''

# 啦啦啦  加一个计数器就可以实现连续保存啦 如果每次只有两个时间会对应相等的话,那么找到这个相等的时间就无需再继续找啦

'''
m = 0                                          # 记录相同结果的次数
for i in range (0,A_sheet.nrows):              # 遍历表A"风速曲线"sheet的每一行
    A_values_row1 = A_sheet.row_values(i)      # 保存第i行的数据至A_values_row1
    for j in range (0,B_sheet.nrows):          # 遍历表B"aaa"sheet的每一行
        B_values_row1 = B_sheet.row_values(j)  # 保存第i行的数据至A_values_row1
        if A_values_row1[0]==B_values_row1[0]: # 比较第一列(每一行第一个值)是否相等
            i++
            print(A_values_row1)
            # 保存相同结果  换成m
            for k in range(0,11):              # 若True,将表A第i行的12个数据保存至新建"same_time_date"sheet的第m行
                worksheet.write(m, k, A_values_row1[k])
                workbook.save(result_to_name)
            continue


'''

注意事项:

提示:这里两个表的时间格式要保持一致,将其改为“数字转换为文本型数字”,否则python读入EXCEl时间数据后为一串float型数字,并且两相同时间数据的小数点并不一致(此处也不知为何)
在这里插入图片描述


方案二:

采用pandas库,这里是小伙伴写的,我直接附上源码大家自行领会

下面展示一些 内联代码片

#  编码必须要,因为里面有中文,要不然索引不成功,已开始索引没成功就是因为编码问题;
# coding=utf-8

# 导入pandas库
import pandas as pd

# 这两个可以忽略,因为没用到;
import numpy as np
# 这个是数据库导入的,用来练手的,你们没有本地数据库也用不用;
import pymysql
# 导入数据
Fpath1 = "K:/马雷/zy.xls";
df1 = pd.read_excel(Fpath1);
Fpath2 = "K:/马雷/03.xlsx"
df2 = pd.read_excel(Fpath2)
# 因为两个数据时间格式不一样,需要调整,然后且切片;
df1.loc[:, "时间"] = df1["时间"].str.replace("-", "").str.slice(0, 14);
# 数据二的日期不是字符串,进行了字符串的转换,这里也栽了大跟头;
df2.loc[:, "时间"] = df2.时间.astype(str).str.replace("-", "").str[0:14]
# 输出调整后的两个表,看是否样式一样;
print(df1)
print(df2)
# 相同时间的日期匹配,进行了内联,数据库里面用过的;
s5 = pd.merge(df2, df1, left_on="时间",right_on="时间",how="inner")
print(s5)
# 判断是否有缺失值,很高兴,发现没有缺失值,如果有的话会输出True
print(s5.时间.isnull())
# 保存数据,开始愉快的分析数据吧,
s5.to_excel("K:/马雷/zy2015532.xls")
# -----------------------------------------------#
# -----------现在代码结束了-----------------------#
# -----------底下是联系写的-----------------------#
# ----------------------------------------------#

# df1.to_excel("K:/马雷/zy1.xls")
# s3 = df.set_index("最大风向", inplace=True, drop=False)
# print(s3)
# print(s3.head(5))

# print(s2);
# cloumes=["平均风速" ,"zuixiao"];
# s3 = df(cloumes);
# print(df.zuixiao)
# print(df.describe())
# print(df["最小风向"].mean)
# print(df.cov())
# print(df.corr())
# s1 = df[1:3];
# s1.to_excel("K:/马雷/zy1.xls", index=False)
# s3 = df["最大风向"].fillna(0);
# s4=df["最大风向"].notnull()
# print(s4)
# print(s3)
# print(df["zuixiao"].df["zuida"])

# print(df[1:3])

# print(s3)
# print(s1.index)
# s1=pd.Series(re
# ads.head(2))
# print(reads.reindex)
# print(reads.dtypes)
#  导入数据库数据
# conn = pymysql.connect(
#     host="127.0.0.1",
#     user="root",
#     password="zy2015532",
#     database="myemployees",
#     charset="utf8"
# )
# mysql_page = pd.read_sql("select * from employees where salary>10000", con=conn)
# print(mysql_page)

到此结束,如有错误,敬请指正

### 回答1: Python是一种强大的编程语言,可以轻松从Excel提取高频词汇并生成词云。Python有许多可用的库,如NumPy、Pandas、Matplotlib和WordCloud等。Pandas库可用于加载和处理Excel的数据,并创建DataFrame对象。可通过定义Pandas语句来反映数据框的高频单词。然后使用WordCloud库创建单词云。使用WordCloud库后,可以定义颜色、字体和绘图区域大小。在运行Python脚本后,就可以生成漂亮的单词云! 实现这个过程的一些步骤包括: 1. 首先,要安装Pandas和WordCloud库,这可以使用pip install命令完成。 2. 然后,将Excel数据加载到Pandas,使用read_excel()方法即可。在这个步骤,文件路径,工作表名,列名称等各种属性都应该被指定。 3. 对于所选数据进行数据清洗。该步骤包括去除空数据、处理重复数据等。 4. 然后,使用built-in Counter库从数据框提取高频词汇。 5. 接下来,使用WordCloud库生成单词云。可以通过设置字体、颜色、图像大小、边界等来调整单词云的外观。 6. 在最后一步,保存生成的单词云。 因此,Python可以方便地从Excel提取高频词汇并生成漂亮的词云。这不仅是数据可视化工具的一个很好的例子,而且它是在Python使用标准库和第三方库的完美示例。 ### 回答2: PythonExcel提取高频词汇生成词云的步骤如下: 1.安装必要的依赖项:需要安装pandas、jieba和wordcloud模块,这些模块需要在Python进行安装。 2.导入Excel文档:使用pandas模块,可以轻松将Excel数据导入Python进行处理。将Excel的数据导入到DataFrame,以便进一步操作。 3.数据清洗:必须对数据进行标准化和清洗以进行下一步分析。首先,将所有字符转换为小写,并删除所有的标点符号和无用字母。使用jieba分词模块将数据进行分词。 4.计算高频单词:使用Python的 Counter 模块来计算每个单词在文本出现的次数。根据结果筛选出高频单词。 5.生成词云:使用Python的wordcloud模块,输入需要生成词云的文本,并设置形状、样式和颜色等个性化参数,生成词云。 总的来说,使用PythonExcel提取高频词汇生成词云,需要熟悉相关Python模块,使用DataFrame进行数据处理、 Counter计数器来计算词频,jieba对文本进行分词和wordcloud生成词云来展示高频词汇。 ### 回答3: Python是一种强大的编程语言,可以对Excel表格的数据进行处理和分析。利用Python的词频计算模块和词云生成工具,我们可以很容易地从Excel表格提取高频词汇并生成词云。 首先,我们需要将Excel表格读入Python的Pandas数据框架,并将所需列数据提取出来,然后进行文本预处理,例如去除标点符号、停用词等。接着,我们可以利用Python的Counter模块计算单词出现频率,得到一个以单词为键、频次为值的字典。然后,我们可以使用Python的WordCloud包生成词云图像。 在生成词云时,我们可以设置一些参数,如词云形状、颜色、字体、大小等,以使生成的词云更加美观和易读。此外,我们还可以根据需要对生成的词云进行自定义处理,例如添加背景图片、调整词云排列方式等。 PythonExcel提取高频词汇生成词云的应用非常广泛,例如在市场营销、舆情分析、新闻报道等领域,都可以利用这种技术来帮助我们更好地理解大量文本数据。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值