免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
python對(duì)excel表根據(jù)列數(shù)據(jù)進(jìn)行篩選以及對(duì)修改后表存儲(chǔ)為excel表

篩選問題

問題:要根據(jù)時(shí)間的小時(shí)選取出一定時(shí)間范圍內(nèi)的數(shù)據(jù)
解決思路:通過pandas庫中的loc()函數(shù)篩選出符合要求的數(shù)據(jù)
例:


要求選出在8-9點(diǎn)的數(shù)據(jù),這里我們只需要將時(shí)間的小時(shí)數(shù)分割出來,保留為8和9的數(shù)據(jù)即可完成篩選

df['時(shí)間']= pd.to_datetime(df['時(shí)間'],errors='coerce')#將excel表中的時(shí)間轉(zhuǎn)化成datatime型
df['小時(shí)'] = df['時(shí)間'].dt.hour.fillna(0).astype('int')#在表中添加一行小時(shí)數(shù),從時(shí)間中切割出來

運(yùn)行結(jié)果:

其實(shí)用df['時(shí)間’].dt.hour就可以實(shí)現(xiàn)切割出時(shí)間,其他類似dt.(year,month,day等)均可,前提是將時(shí)間類型轉(zhuǎn)化成datatime類型,因?yàn)?dt.只能對(duì)datatime型進(jìn)行處理,即不轉(zhuǎn)化不能使用該方法。

#選出符合要求的數(shù)據(jù)
def month_rersev(a):
    return a == 8 or a == 9
df = df.loc[df['小時(shí)'].apply(month_rersev)]#將表中按照符合要求的數(shù)據(jù)選出來

運(yùn)行結(jié)果:


根據(jù)該列中時(shí)間數(shù)據(jù)分割出小時(shí),再用loc()函數(shù)進(jìn)行篩選,篩選到此已經(jīng)完成了。
但是如何將修改后的符合要求的數(shù)據(jù)存儲(chǔ)到表格中?接下來是存儲(chǔ)過程中可能出現(xiàn)的小問題。

保存為新的excel表格

保存為新的excel表格我選擇用.to_excel('路徑.表名.xlsx’)函數(shù),直接保存為一個(gè)新的excel表格,但是會(huì)出現(xiàn)不符合要求的情況,如,將前面運(yùn)行結(jié)果的個(gè)數(shù)的序號(hào)也存入表格,時(shí)間存入之后顯示為#號(hào)。
解決方案:

with pd.ExcelWriter(r'D:\data\biao6.xlsx',engine='openpyxl',datetime_format='YYYY/MM/DD HH:mm:ss')as writer:
    df.drop('小時(shí)',axis=1).to_excel(writer,index=False)

這里使用ExcelWriter函數(shù)來規(guī)范化輸入excel表格的日期時(shí)間格式,同時(shí)刪掉前面為了篩選數(shù)據(jù)生成的'小時(shí)’那列。

運(yùn)行結(jié)果:


這里時(shí)間的輸入依舊是#號(hào),經(jīng)過判斷可知為單元格寬度不夠?qū)е嘛@示全為#號(hào),這里通過代碼對(duì)單元格寬度進(jìn)行設(shè)置

wb=load_workbook(r'D:\data\biao7.xlsx')
for sheetname in wb.sheetnames:
    ws=wb[sheetname]
    # 調(diào)整列寬
    ws.column_dimensions['B'].width=  20
wb.save(r'D:\data\biao7.xlsx')#這里路徑一定要和之前一樣,要不然保存到其他地方去了

運(yùn)行結(jié)果:


完整代碼:

import pandas as pd
from openpyxl import load_workbook
from datetime import datetime

#選出符合要求的數(shù)據(jù)
def month_rersev(a):
    return a == 8 or a == 9
df = pd.read_excel(r'D:\data\biao1.xlsx')
df['時(shí)間']= pd.to_datetime(df['時(shí)間'],errors='coerce')#將excel表中的時(shí)間轉(zhuǎn)化成datatime型
df['小時(shí)'] = df['時(shí)間'].dt.hour.fillna(0).astype('int')#在表中添加一行小時(shí)數(shù),從時(shí)間中切割出來


df = df.loc[df['小時(shí)'].apply(month_rersev)]

with pd.ExcelWriter(r'D:\data\biao7.xlsx',engine='openpyxl',datetime_format='YYYY/MM/DD HH:mm:ss')as writer:
    df.drop('小時(shí)',axis=1).to_excel(writer,index=False)


wb=load_workbook(r'D:\data\biao6.xlsx')
for sheetname in wb.sheetnames:
    ws=wb[sheetname]
    # 調(diào)整列寬
    ws.column_dimensions['B'].width=  20
  
wb.save(r'D:\data\biao7.xlsx')

參考博客:https://blog.csdn.net/weixin_39927799/article/details/111287345

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Python3 讀取和寫入excel xlsx文件 使用openpyxl
Excel引用其它工作簿中的單元格的值及使用VBA操作
python針對(duì)Excel表格的操作
UC頭條:PythonExcel文件
用 Python 批量修改 Excel 文件,只幾個(gè)模塊就可以了
python 讀寫excel工具openPyXL
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服