python操作问题记录
时间转换
import time a = ‘2020-03-06 19:18:00‘ a1 = time.strptime(a,‘%Y-%m-%d %H:%M:%S‘) #格式化str为time格式 print(time.strftime(‘%Y%m%d‘,a1)) #格式化time格式为str print(time.asctime(time.localtime(time.time()))) #格式化当前时间为 Thu Apr 7 10:29:13 2016 print (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) # 格式化成2016-03-20 11:45:39形式 print (time.strftime("%a %b %d %H:%M:%S %Y", time.localtime())) # 格式化成Sat Mar 28 22:24:24 2016形式 a = "Sat Mar 28 22:24:24 2016" print (time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y"))) # 将格式字符串转换为时间戳 import calendar calendar.month(2016, 1) #输出2016年1月份的日历 import pandas as pd pd.to_datetime(‘2016-03-20‘).strftime(‘%Y%m%d‘) #pandas 格式化str输出 from datetime import datetime,timedelta datetime.today() # 返回当前时间时分秒都为0 now.isoweekday()# 返回的1-7代表周一--周日 now.weekday()# 返回的0-6代表周一--到周日 (pd.to_datetime(‘20200130‘)+timedelta(days=3)).strftime(‘%Y%m%d‘) #格式化后三天的日期 now = datetime.now()+timedelta(days=3) print(now.strftime(‘%Y-%m-%d‘)) #格式化当天后三天的日期
列表排序
a = [‘e‘, ‘a‘, ‘u‘, ‘o‘, ‘i‘] a.sort() #升序 正序 a.sort(reverse=True) # 降序 逆序 不能存变量 a.sort(key= lambda x : x[1]) # 根据第二个字母排序 默认根据第一个字母排序 sorted(a) # 可存变量 保留原list 可传参数 reverse = True 降序 , reverse = False 升序(默认) sorted([[6,7,8],[2,3,4],[1,2,3]], key=lambda x: x[2]) #多维列表 根据元素排序 d = {‘lily‘:25, ‘wangjun‘:22, ‘John‘:25, ‘Mary‘:19} sorted_keys = sorted(d) # 对字典而言,默认是对keys进行排序 print(sorted_keys) sorted_keys1 = sorted(d, key=lambda x : x[1]) print(d_new2) d_new = sorted(d.items(), key=lambda x: x[1], reverse=True) # 根据年龄排序,返回列表形式 print(d_new) d_new = dict(d_new) # 使用内置函数把嵌套列表转换成字典 print(d_new) sorted_values = sorted(d.values(), key=lambda x:x, reverse=False) # 排序值 print(sorted_values) 输出: [‘John‘, ‘Mary‘, ‘lily‘, ‘wangjun‘] [‘wangjun‘, ‘Mary‘, ‘lily‘, ‘John‘] [(‘lily‘, 25), (‘John‘, 25), (‘wangjun‘, 22), (‘Mary‘, 19)] {‘lily‘: 25, ‘John‘: 25, ‘wangjun‘: 22, ‘Mary‘: 19} [19, 22, 25, 25] #互换dick的key和value d = {‘lily‘:25, ‘wangjun‘:22, ‘John‘:25, ‘Mary‘:19} d_new = {v:key for key,v in d.items()} print(d_new) 输出:{25: ‘John‘, 22: ‘wangjun‘, 19: ‘Mary‘}
编码转换
df.to_csv(‘abdata.csv‘, mode=‘a‘, encoding=‘utf_8_sig‘) # pandas导出csv 要指定编码 #python2 指定utf8 #coding:utf-8 import sys reload(sys) sys.setdefaultencoding("utf-8")
pandas操作
import numpy as np import pandas as pd pd.options.mode.chained_assignment = None #忽略警示信息提示 np.array(df0[[‘name‘,‘key‘]]).tolist() #dataframe转化list dfdata = pd.DataFrame() dfdata = dfdata.append(df1,ignore_index=True) #pandas append必须存入变量 否则不生效 pd.DataFrame([[1,2,3],[1,2,3]],columns=[‘a‘,‘b‘,‘c‘],index=df0.index) #创建dataframe df0 = pd.DataFrame({‘id‘:[3,4,5,6,7,3,4,5], ‘name‘:[10.54,11.11,12.80,10.05,11.21,10.98,11.12,10.55]}, index=(‘a1‘,‘a2‘,‘a3‘,‘a4‘,‘a5‘,‘a6‘,‘a7‘,‘a8‘)) df0.loc[df0[‘id‘] == 3 ,‘key‘] = 1 df0.loc[df0[‘id‘] == 5 ,‘key‘] = 0 # 进行布尔值判断 输出符合条件 pd.concat([df0, df1], axis=1) #合并两个dataframe df.index=pd.to_datetime(df.date) # 将index 改为时间 df=df.sort_index() #排序index df[‘ret‘]=df.close/df.close.shift(1)-1 # .shift(1) 获取下一个 .shift(-1) 获取上一个 df[‘当天仓位‘].fillna(method=‘ffill‘,inplace=True) #根据一列nan值填充上一个不为nan的值 (df_new.ret+1.0).cumprod() #计算当前值并累计 df1[‘ret‘].diff() # 比较上一值与当前值的差 df[‘close‘].rolling(v).mean() # 移动窗口list的均值 .loc[‘a1‘]#根据index获取行 .iloc[0].name #根据行号获取行的某个值 # series 根据list 判断是否存在 df0[df0[‘id‘].isin([3,4])] #根据list获取列表信息 df0[~df0[‘id‘].isin([3,4])] #根据list获取列表信息 取反 # series 根据list 排序 df[‘words‘] = df[‘words‘].astype(‘category‘) #必须转换成这个格式 df[‘words‘].cat.reorder_categories([1,2,3], inplace=True) # list长度相等用这个 df[‘words‘].cat.set_categories([1,2,3], inplace=True) # list多 用这个 df[‘words‘].cat.set_categories([1,2,3], inplace=True) # list少 用这个 df.sort_values(‘words‘, inplace=True) #pandas 读写mysql from sqlalchemy import create_engine mysq = create_engine(‘mysql+pymysql://root:/abdata?charset=utf8‘) df.to_sql(‘coun‘,mysq,if_exists=‘append‘,index=False) # 追加数据 df.to_sql(‘counts‘,mysq,if_exists=‘replace‘,index=False) #删除并写入表 df = pd.read_sql_query(‘select * from cod1‘,mysq) # 查询mysql表 #pymysql读写mysql import pymysql conn = pymysql.connect(‘127.0.0.1‘, ‘root‘, ‘mysql.123‘, ‘data‘,charset=‘utf8‘) cur = conn.cursor() sql1 = "SELECT * from (SELECT * from data1 ORDER BY id DESC LIMIT %s ) aa order by id" %sum cur.execute(sql1) c1 = cur.fetchall() #读取mysql conn.commit() #写入mysql cur.close() conn.close()
requests
import requests from bs4 import BeautifulSoup from selenium import webdriver htm = requests.get(url=url,headers=headers,timeout=30,stream=False).text soup = BeautifulSoup(htm, ‘html.parser‘) txt = soup.find_all(‘div‘, class_=‘lax-s‘)‘‘.join(str(i)+‘,‘ for i in df1[‘cod‘].tolist())[:-1] #list转换str
相关推荐
夜斗不是神 2020-11-17
huavhuahua 2020-11-20
Yasin 2020-11-16
xiaoseyihe 2020-11-16
千锋 2020-11-15
diyanpython 2020-11-12
chunjiekid 2020-11-10
wordmhg 2020-11-06
世事一场大梦 2020-11-17
xiaoseyihe 2020-11-16
Morelia 2020-11-03
CloudXli 2020-11-03
文山羊 2020-10-31
comtop0 2020-10-31
pythonxuexi 2020-10-30
三石 2020-10-29
chaochao 2020-10-27
PythonMaker 2020-10-27