实验常用API及使用例子-Python篇

(一)数据预处理

1. 读取/写入csv文件
#写入
data_df.to_csv(filename)
#==列名的选择===============================
#(1)第一行为列名
pd.read_csv("xxx",delimiter=",",error_bad_lines=False,low_memory=False,encoding='unicode_escape',header=0)
#(2)增加列名
pd.read_csv("xxx",delimiter=",",error_bad_lines=False,low_memory=False,encoding='unicode_escape',header=None,names =['label_class','type','oldname','newname','oldStmt', 'newStmt','oldedge','newedge'])

【可能错误】
(1)Error tokenizing data

#使用 error_bad_lines=False ( # 跳过超出header字段的行,如4个字段,579行出现了 5个 )encoding='unicode_escape'跳过错误
#EOF 最好的解决办法还是把某一行删掉,否则会有很多问题出现
pd.read_csv(... , error_bad_lines=False,encoding='unicode_escape')

(2) low memory.

#使用 low memory 参数
pd.read_csv(... , error_bad_lines=False)

(3)数据清洗–DataFrame中的空值处理方法

2. 获取dataframe信息
# 1.获取df列名
data_df.columns
# 2.遍历每一行,获取指定元素值;
#法一:
for indexs in data_df.index:
	#获取遍历得到的index行
	rawRecord= data_df.loc[indexs]
	#获取改行指定元素(第3个元素)
    ele=rawRecord.values[3]
#法二:
for i in range(index, len(data_df)):  
	xxx    

# 3. 根据index获取某一行
#获取某一列所在行的其他元素
def func(x, index):
    other1= data_df.iloc[index]['other1']
    other2= data_df.iloc[index]['other2']
data_df['attr1'] = data_df["attr2"].apply(
        lambda x: func(x, data_df.loc[data_df['attr2'] == x].index[0]))
# 4. 获取多行
df[[attr1,attr2.....]]#返回df
df[[attr1,attr2.....]].values#返回list

3.处理dataframe数据
# 1. apply函数 对data_df中的attr2列中的每个元素应用func,其返回结果记录为新列 attr2
#(1)仅传值
data_df['attr1'] = data_df["attr2"].apply(lambda x: func(x))
#(2)传值与所在行
data_df['attr1'] = data_df["attr2"].apply(
        lambda x: func(x, data_df.loc[data_df['attr2'] == x].index[0]))

# 2. 删除行:根据布尔条件删除(此时index不连续),需要重新生成index
data_df.drop(data_df[data_df['oldStmt_body']=="{}"].index, inplace=True)
data_df.reset_index(drop=True, inplace=True)
#多个条件删除
data_df.drop(data_df[data_df['ins_ent'] .isna() &  data_df['del_ent'].isna()].index, inplace=True)
4. 数据统计
# 1. 单变量类别统计
print(data_df['label'].value_counts())
# 2. 有条件统计
#loc函数选择满足条件的行,返回dataframe再进行统计。
print(data_df.loc[data_df['attr1'] ==0]['label'].value_counts())

# 3. 查看有效值
train.info()
# 4. 画图
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
#(1)barplot代表首先根据x区分不同的组,然后计算不同的组中的y的平均值画出来。(图1)
sns.barplot(x=attr_col, y=label_col, data=data_df)
#(2)相关性矩阵
corrmat = train.corr() ##corrmat是相关性矩阵
#(3)热力图,如图2
import matplotlib.pyplot as plt
f, ax = plt.subplots(figsize=(12, 9))
sns.heatmap(corrmat, vmax=.8, square=True)
#(4)选出最相关的k个:nlargest(k,max)表示在前max个数据中选择最大的k个数据。该代码则表示在21列的所有数据中,其前21个数据(全部了)的相关性最大的10个数据的index
k=10
cols = corrmat.nlargest(k,21)[21].index
#查看10个变量的相关系数
cols_cor = train[cols].corr()

在这里插入图片描述
图1:barplot
在这里插入图片描述
图2:热力图

(二)网络

1. 指定gpu
#相应的库也要检查是否是gou版本,activate tensorflow-gpu0(anaconda环境)
import tensorflow as tf
config = tf.compat.v1.ConfigProto()
config.gpu_options.allow_growth = True
session = tf.compat.v1.InteractiveSession(config=config)
os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ["CUDA_VISIBLE_DEVICES"] = "1"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值