python操作
来源:互联网 发布:100元的智能手机淘宝 编辑:程序博客网 时间:2024/05/16 10:58
-5、查看tensorflow的版本:tf.__version__
-4、spyder自动对齐:shfit+Tab
-3、sns.heatmap 画相关图 sns.heatmap(data.drop('phone',axis=1).corr(), vmax=0.6, square=True, annot=True) 不是皮尔森系数
dataframe的协方差和相关系数,计算的就是两个或多个column之间的相关参数
df.corr()相关系数 协方差用于衡量两个变量的总体误差 不仅表示线性相关的方向,还表示线性相关的程度,取值[-1,1]。
df.cov()协方差 X、Y的协方差除以X的标准差和Y的标准差 只表示线性相关的方向,取值正无穷到负无穷。
df.corr(df['a'])计算所有列和某个列的相关系数
-2、将一个txt文件中的一列数据,读成list
features=pd.read_csv('C:\\Users\\123\\Desktop\\51\\1.txt',header=None)
accept_cols=[]
for i in features[0]:
accept_cols.append(i)
-1、spyder调整界面摆布:view 菜单下 Reset Windows Layout Yes
0、查看函数说明 ?函数名
1、读入数据时指定每列的格式,用dtype参数,指定第一列为index
rawdata = pd.read_csv('C:\\Users\\123\\Desktop\\0313\\dun_details.txt',sep="\t",names = ['mobile_imsi','tel','num','start_time'],dtype={'mobile_imsi':str,'tel':str,'num':int,'start_time':str},index_col=0)
2、df.dtypes
3、读入的txt文件中含有中文字符,需指定编码方式
UTF8编码格式很强大,支持所有国家的语言;GBK编码:是指中国的中文字符,其它它包含了简体中文与繁体中文字符
for line in open("C:\\Users\\123\\Desktop\\tag_for_duntel.txt","r",encoding='utf-8'):
line = line.strip()
strs = line.split('\t')
4、路径中.的含义
当前工作目录
5、dataframe常用操作
计算各列数据总和并作为新列添加到末尾:df['Col_sum'] = df.apply(lambda x: x.sum(), axis=1)
计算各行数据总和并作为新行添加到末尾:df.loc['Row_sum'] = df.apply(lambda x: x.sum())
改某列的部分行:df.ix[df['a']==1,'b']=2 a列=1时,b列取值2
dataframe按第一列排序:tmp1.sort_values(by=tmp1.columns[0],inplace=True)
merge合并:total_df = pd.merge(object_df, repay_df, how='left', on = 'ListingId')
weidu_with_labels=pd.merge(weidu,wacai_import,left_on='phone',right_on='mobile',how='left')
按某列merge,不是默认按indexmerge,先left_on,再right_on
替换replace:total_df = total_df.replace('\\N','2017-01-30') \\N不是nan的意思
tmp1 = tmp1.fillna(0) tmp1=tmp1.replace(np.inf,100) tmp1=tmp1.replace(-np.inf,-100)
重置index:train_df.reset_index(drop=True,inplace=True)
修改特定列的列名:df = df.rename(columns={'a1': 'a','e1': 'e'})
筛选数据:data = rawdata[rawdata['tel']=='05138'] tel是str类型 两个等号!
data = rawdata.ix[:,['contact','call_out_times']]
data = rawdata[['contact','call_out_times']]
增加列:df['label'] = 1
删除列drop:del train_df['recorddate']
table=table.drop('product_month', axis=1)
删除空值:data['Fare'].dropna()
缺失值填充:train_df = train_df.fillna(0)
取平均值:np.median(data['Age'].dropna())保存csv文件时,不保存index:train_df.to_csv('./train.csv',index = False)
读入csv文件:train_df = pd.read_csv("./train.csv", encoding="gbk")
apply修改列的数据格式:dataset['Age'] = dataset['Age'].astype(int)
df_original['call_out_times']=df_original['call_out_times'].
apply(lambda x: int(x) lambda x: x.split(' ')[0] lambda x: 0 if type(x) == float else 1)
messages['is_weekend'] = messages['day_of_week'].isin([5,6]).apply(lambda x: 1 if x == True else 0)
agg操作group by分组结果:df.groupby(by='col1').agg({'col2':['max', 'min']}).reset_index()
# Mapping Sex dataset['Sex'] = dataset['Sex'].map( {'female': 0, 'male': 1} ).astype(int) # Mapping titles title_mapping = {"Mr": 1, "Miss": 2, "Mrs": 3, "Master": 4, "Rare": 5} dataset['Title'] = dataset['Title'].map(title_mapping)
取列名:for col in X.columns.values/X.columns[0:-1]:
去重:wacai_import=wacai_import.drop_duplicates('mobile')
concat合并列:table = pd.concat([table, dummies], axis=1) axis=0 行,默认是按行合并。按列合并时,需要指定axis。 要加方括号!
nunique去重计数:train['Ticket'].nunique()
统计每列空值的个数:rawdata.isnull().sum()
ravel:y_train.values.ravel()
定义空dataframe:df0 = pd.DataFrame([]) df0 = pd.concat([df0,df1],axis=0)
dataframe数据类型转为float:df = df.astype('float')
取分组的均值,排序:
1:train[['Pclass', 'Survived']].groupby(['Pclass'], as_index=False).mean().sort_values(by='Survived', ascending=False)
isin:data=train[train['Age'].isin([15,16,17,18,19,20])]
2:all_iv_detail = all_iv_detail.sort_values(by=['ori_IV','var_name','max'],ascending=[False,True,True])
3:combine['Shared_ticket'] = np.where(combine.groupby('Ticket')['Name'].transform('count') > 1, 1, 0)
显示groupby的结果:grouped = train.groupby('Ticket')k = 0for name, group in grouped: if (len(grouped.get_group(name)) > 1): print(group.loc[:,['Survived','Name']]) k += 1 if (k>10): break
df.describe(include='all')
df.corr(method='pearson')
5.1将类别变量转化为哑变量(若干个0/1变量):
titanic_train=titanic_train.join(pd.get_dummies(titanic_train.Pclass,prefix='Pclass'))
将Pclass转化为Pclass,Pclass_1,Pclass_2,Pclass_3
5.2join:titanic_train=titanic_train.join(pd.get_dummies(titanic_train.Pclass,prefix='Pclass'))
5.3填充缺失值的包
#missing values in farefrom sklearn.preprocessing import Imputer
imputer = Imputer(missing_values='NaN',strategy='median',axis=0)imputer = imputer.fit(titanic_train[['Fare']])titanic_train[['Fare']]=imputer.transform(titanic_train[['Fare']])imputer = imputer.fit(titanic_test[['Fare']])titanic_test[['Fare']]=imputer.transform(titanic_test[['Fare']])
5.4自定义函数:
def inpute_age(cols): Age = cols[0] Pclass = cols[1] if pd.isnull(Age): if Pclass == 1: return 37 elif Pclass == 2: return 29 else: return 24 else: return Age
df['Age']=df[['Age','Pclass']].apply(inpute_age, axis=1)
6、时间常用操作
字符串日期转化为时间格式:object_df['借款成功日期'] = pd.to_datetime(object_df['借款成功日期'])
时间相减,得到相差天数:from datetime import datetime
a = '2016-02-19 12:25:54'
b = '2016-02-19 12:25:55'
time_a = datetime.strptime(a,'%Y-%m-%d %H:%M:%S')
time_b = datetime.strptime(b,'%Y-%m-%d %H:%M:%S')
print (time_b - time_a).days
messages['day_of_week'] = messages['timestamp'].apply(lambda x: x.dayofweek) messages['year_month'] = messages['timestamp'].apply(lambda x: x.strftime("%Y-%m"))
7、cutdata
import pandas as pdtemp=[0,0.1,0.1,0.2,0.3,0.4,0.5,1]list1=pd.cut(temp,4,labels=range(4)).labelslist2=pd.qcut(temp,4,labels=range(4)).labels
bins = (-1, 0, 5, 12, 18, 25, 35, 60, 120)group_names = ['Unknown', 'Baby', 'Child', 'Teenager', 'Student', 'Young Adult', 'Adult', 'Senior']categories = pd.cut(df.Age, bins, labels=group_names)
8、
listA = [1,2,3,4,5]listB = [3,4,5,6,7]#求交集retJ1 = list(set(listA)&(set(listB)))retJ2 = list(set(listA).intersection(set(listB)))#求并集retB1 = list(set(listA)|(set(listB)))retB2 = list(set(listA).union(set(listB)))#求差集,在B中但不在A中retC1 = list(set(listB)-(set(listA)))retC2 = list(set(listB).difference(set(listA)))#并集减差集ret=list(set(listB)^(set(listA)))
sysmmetric difference(对称差集) #并集减交集
9、pdb是Python自带的一个库,为Python程序提供了一种交互式的源代码调试功能
ctrl+F10 单步调试
10、建项目
11、按行读txt
12、正则表达式 律师+号码
re.findall(u'(.律师.{0,10}\d{3,11})',content)
re.findall(u'(.律师.{0,10}((\d{10,12})|(0[1-9]\d{1,2}[--—, ]?[1-9]\d{6,7})))',content)
toAddWeidu = []
for i in weidu.columns.values:
if re.findall(('TNumsCon|TNumsIn|TNumsOut'),i):
toAddWeidu.append(i)
13、df中间插一列、导出多个sheet
15、读mysql表中的数据:
import pandas as pd
import pymysql
conn = pymysql.connect(host = '192.168.109.200', port = 3306, user = 'root', passwd = 'root123', db='db_grayscale', charset = 'utf8')
cursor=conn.cursor()
df_a=pd.read_sql('SELECT tel,rule_1,rule_2 FROM vw_call_details',conn)
16、字符串查找
info = 'abca'
print info.find('a')##从下标0开始,查找在字符串里第一个出现的子串,返回结果:0
info = 'abca'
print info.find('a',1)##从下标1开始,查找在字符串里第一个出现的子串:返回结果3
info = 'abca'
print info.find('333')##返回-1,查找不到返回-1
- Python操作
- python操作
- python操作
- python操作
- [python]Python操作MySQL
- [Python] Python时间操作
- Python -- Json基本操作操作
- Python 文件操作常用操作
- 【python】python操作符&表达式
- [python]python操作xml文件
- Python基础--python操作sqlite
- python<使用python操作Mysql>
- 【python FTP】python操作FTP
- Python操作PostgreSQL
- 使用python操作excel
- 使用 python 操作blog
- python操作mysql
- Python文件操作
- 自定义瀑布流WaterPullLayout
- 基于区块链的融合通信初探(一)
- Dom基本操作
- mootools入门
- theano在windows下的安装
- python操作
- 计算机网络复习
- U-Boot2010.06移植(2440)-----移植网卡DM9000驱动
- 大数运算-模拟
- RPC原理
- java1.8几个漂亮的API设计(2)排序和比较
- 一个c3p0连接数据库时的小问题
- 快速排序纠错
- 在linux上部署python和gdal