- 安装pandas
pip install pandas
- 制作一个demo excel
- 检验b 列是否是datetime
from datetime import datetime
import pandas as pd
import requests
from pandas.api.types import is_datetime64_any_dtype
with open(r'C:\Users\84977\Desktop\test\2.xlsx',mode='rb') as file:
order_dict = pd.read_excel(file.read(),sheet_name=None,usecols=['a','b','c','d'])
vv = {}
for sheet_name, df in order_dict.items():
nan_rows = df[df.isnull().any(axis=1)]
v1 = set(nan_rows.index)
v2 = set(df[~df['d'].isin(['是','否'])].index)
vv = v1|v2
is_datetime_column = is_datetime64_any_dtype(df["b"])
print(is_datetime_column)
print(vv)
- 获取不是datetime的cell所在的行
from datetime import datetime
import numpy as np
import pandas as pd
import requests
from pandas.api.types import is_datetime64_any_dtype
def indexes(iterable, obj):
return (index for index, elem in enumerate(iterable) if elem == obj)
with open(r'C:\Users\84977\Desktop\test\2.xlsx',mode='rb') as file:
order_dict = pd.read_excel(file.read(),sheet_name=None,usecols=['a','b','c','d'])
vv = {}
for sheet_name, df in order_dict.items():
nan_rows = df[df.isnull().any(axis=1)]
v1 = set(nan_rows.index)
v2 = set(df[~df['d'].isin(['是','否'])].index)
vv = v1|v2
m = df['b'].apply(lambda v: isinstance(v, datetime))
print(m.values)
idxs = indexes(list(m.values), False)
print(list(idxs))
ddd = pd.to_datetime(np.where(m, df['b'].astype(str), np.NaN))
print(ddd.isnull())
idxs = indexes(list(ddd.isnull()), True)
vvvv = list(idxs)
for index,item in enumerate(ddd):
if index not in vvvv:
print(item.strftime('%Y-%m'))
print(vv)
https://stackoverflow.com/questions/43214204/how-do-i-tell-if-a-column-in-a-pandas-dataframe-is-of-type-datetime-how-do-i-te