python数据分析学习
黄佳俊、
to be or not to be!
热爱生活!
执着学习!
展开
-
plotly基础
Plotly基础介绍plotly.py是提供了一个python使用Plotly.js(JavaScript library)这个的接口. 在Plotly.js中, 一个figure与一个JSON文件是对应的. 我们可以看下面的一个例子, JSON文件是如何与Figure对应的.fig={ "data":[{'type':'bar', 'x':[1,2,3], 'y':[1,3,2]}], "layout":{"tit...原创 2022-05-21 20:24:29 · 1412 阅读 · 0 评论 -
报错Failed to convert value(s) to axis units解决方法
在使用 plt.xticks的时候 遇到了这个问题这个问题是没办法将无法将值转换为轴单位鉴于xticks是可以接受元组和列表的,所以不存在输入值的错误,后面发现我错误的认为 xticks的参数只有一个,如:plt.xticks(s)实际上应该要有两个参数,一个是替换的轴单位,一个是之前的轴单位plt.xticks(s,x)即可例:...原创 2022-05-11 09:52:34 · 8829 阅读 · 0 评论 -
Matplotlib设置颜色(含颜色表)
详细参考:Matplotlib颜色设置_半月夏微凉的博客-CSDN博客_matplotlib设置颜色原创 2022-05-11 09:50:36 · 1749 阅读 · 0 评论 -
matplotlib 设置坐标轴-移动x,y轴的位置
spines有‘left’/‘right’/‘top’/‘bottom’四个,也就是方框的四边,其中'left'对应我们常用的y轴,‘bottom’对应我们常用的x轴。import matplotlib.pyplot as plt # 去掉边框ax = plt.gca() # get current axis 获得坐标轴对象ax.spines['right'].set_color('none') # 将右边 边沿线颜色设置为空 其实就相当于抹掉这条边ax.spines['top']..原创 2022-05-11 09:46:54 · 2762 阅读 · 1 评论 -
pandas.Series.plot的简单参数使用说明
注:要使用plot函数需要使用matplotlib和pylab环境。%matplotlib inlineSeries.plot(kind='line', ax=None, figsize=None, use_index=True, title=None, grid=None, legend=False, style=None, logx=False, logy=False, loglog=False, xticks=None, yticks=None, xlim=None, ylim=None, .原创 2022-05-08 09:53:00 · 1548 阅读 · 0 评论 -
‘AxesSubplot‘ object has no attribute ‘set_xlable‘
解决办法:其实就是拼写弄错了。以下是正确:原创 2022-05-03 18:31:32 · 1530 阅读 · 0 评论 -
Python: Matplotlib调整子图间距离
Problem:做可视化的时候,经常会遇到这样的问题,即,子图之间的间距过小,导致x轴、y轴的标签被遮挡覆盖!虽然可以通过拉伸,最大化等操作来解决;但这并不优雅!Solution:使用python子图位置调整 APIplt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=0.5)1可根据子图布局,调整 hspace ,增大上下边距。也可根据子图布局,调整 wspace原创 2022-05-03 18:29:50 · 4996 阅读 · 0 评论 -
Matplotlib 画图标注annotate详解
基本标注使用text()会将文本放置在轴域的任意位置。 文本的一个常见用例是标注绘图的某些特征,而annotate()方法提供辅助函数,使标注变得容易。 在标注中,有两个要考虑的点:由参数xy表示的标注位置和xytext的文本位置。 这两个参数都是(x, y)元组。import numpy as npimport matplotlib.pyplot as pltfig = plt.figure()ax = fig.add_subplot(111)t = np.arange(0.0, 5原创 2022-05-03 18:28:56 · 2493 阅读 · 0 评论 -
python爬虫: 查找自己浏览器的headers
谷歌浏览器中打开任意一个网页——比如打开IP查询在网页中右键单击点击“检查”,出现如下页面。点击最上方选项卡中的‘Network’选项,再按F5,在‘name’框中会出现一个或多个选项,点击任意选项,在右侧点击‘headers’选项,在最下方找到‘User-Agent:’,如下图将User-Agent:粘贴到自己代码headers中即可:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, lik..原创 2022-04-25 09:54:19 · 3537 阅读 · 1 评论 -
如何解决python爬虫中Response [200]返回值问题
<Response [200]>返回值问题在尝试python爬虫时,我们常常会遇到<Response [200]>返回值问题范例:此处只需将返回的值进行如下操作即可:htmls=requests.get(url,headers=Spider.headers)htmls=htmls.text或hmtls=htmls.content...原创 2022-04-25 09:51:24 · 10334 阅读 · 1 评论 -
使用requests.get得到<Element html at 0x271cec68f48什么意思?
请注意这一行:html_page = etree.HTML(response_page.text),etree.HTML()可以用来解析字符串格式的HTML文档对象,将传进去的字符串转变成_Element对象说以你输出的是_Element对象,接下来就可以按照etree特定的语法规则去提取数据。举例:import requestsurl = 'https://www.baidu.com'res = requests.get(url)html = res.textprint(typ原创 2022-04-25 09:50:04 · 2666 阅读 · 0 评论 -
python中min和max方法的key参数使用方法详解
key参数需要传递一个函数名,在进行比较前首先用这个函数对前面用来比较的每个元素进行一次预处理。在不经过任何处理的情况下,下面的list最大值是按照字符串的第一个字符来排列,如果相等再按照第二个字符继续比较,所以得到的是第一个字符最大的4做为最大值In [7]: max('1','111','2','33','4') Out[7]: '4'但是我们希望的是按照数值的大小来进行排序而不是字符串的比较规则,...原创 2022-04-25 09:34:55 · 1202 阅读 · 0 评论 -
Python数据分析:TypeError: ‘float‘ object is not subscriptable解决办法
打印出x是具体的数,不能取索引,删掉索引就行,希望能帮到你!原创 2022-04-21 09:40:51 · 8624 阅读 · 0 评论 -
【ValueError: math domain error】
写python程序时,出现错误:ValueError: math domain error原因:某些操作不符合数学定义,如对负数取对数,对负数开平方。原创 2022-04-21 09:39:39 · 458 阅读 · 0 评论 -
pandas中index对象是不可修改的,但是为什么可以通过赋值修改呢?
Index对象负责管理轴标签、轴名称等元数据,是一个不可修改的、有序的、可以索引的ndarry对象。在构建Sereis或DataFrame时,所用到的任何数据或者array-like的标签,都会转换为一个Index对象。Index对象是一个从索引到数据值的映射,当数据是一列时,Index是列索引;当数据是一行数据时,Index是行索引。Pandas中的df.columns = [‘a’,’b’,’c’]函数的作用是重命名列名。index是不可修改的,通过reindex只是重新索引。重新索引的概念是对原创 2022-04-21 09:33:05 · 885 阅读 · 0 评论 -
pandas 修改 DataFrame 列名
直接赋值修改:df.columns = ['a', 'b', 'c', 'd', 'e']问题:有一个DataFrame,列名为:['$a', '$b', '$c', '$d', '$e']现需要改为:['a', 'b', 'c', 'd', 'e']有何办法?import pandas as pddf = pd.DataFrame({'$a': [1], '$b': [1], '$c': [1], '$d': [1], '$e': [1]})解决:方式一:columns属.原创 2022-04-21 09:26:09 · 5173 阅读 · 0 评论 -
pandas DataFrame怎么取出两列数据?
#方法一:df = pd.DataFrame(df,columns=['feater','predict'])#方法二:df = df[['feater', 'predict']]原创 2022-04-21 09:23:44 · 6044 阅读 · 0 评论 -
用pandas画图遇到中文不显示(jupyter)
画图的时候所有中文都显示方框(用到pandas自带的plot等画图函数)加上下面的就行了:import matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签原因:pandas画图的内核是matplotlib或者说调用了它的api如果没有正负号显示:plt.rcParams['axes.unicode_minus']=False #用来正常显示负号...原创 2022-04-11 08:31:45 · 3760 阅读 · 0 评论 -
python | 画个简单的柱形图
import matplotlib.pyplot as pltimport numpy as npn = 12X = np.arange(n)Y1 = (1-X/n)*np.random.uniform(0.5,1.0,n)Y1 = (1-X/n)*np.random.uniform(0.5,1.0,n)# 由于返回值,进过提取是str,操作小数位数不方便,外面提前处理好p1 = plt.bar(X,np.round(Y1,2),width=0.8,facecolor='deeppi...原创 2021-12-19 18:20:15 · 311 阅读 · 0 评论 -
Dataframe数据转换为二维数组array
一个Dataframe如下: age astigmatic lenses_target prescript tearRate0 2 0 1 1 11 2 0 2 1 02 2 1 1 1 13 2原创 2021-12-18 17:09:35 · 4477 阅读 · 1 评论 -
查看DataFrame的常用属性
查看DataFrame的常用属性DataFrame的基础属性有values、index、columns和dtypes,分别可以获取元素、索引、列名和类型。查看DataFrame的属性原创 2021-12-18 17:06:24 · 2508 阅读 · 0 评论 -
‘jt‘ 不是内部或外部命令,也不是可运行的程序
原因:没有安装jupyterthemes解决办法:到anaconda指定环境下,输入命令行pip install jupyterthemes安装一下他的这个jupyter主题注意:不要用condainstall jupyterthemes原创 2021-12-18 11:24:07 · 1373 阅读 · 0 评论 -
换个好看舒服的jupter notebook风格
前提:到anaconda指定环境下,输入命令行pip install jupyterthemes安装一下他的这个jupyter主题注意:不要用condainstall jupyterthemes深绿色主题jt -t oceans16 -f fira -fs 13 -cellw 90% -ofs 11 -dfs 11 -T深蓝色主题jt -t monokai -f fira -fs 13 -cellw 90% -ofs 11 -dfs 11 -T -N白色主题jt...原创 2021-12-18 11:21:22 · 865 阅读 · 0 评论 -
在Anaconda上面安装imblearn包
安装前,需要保证自己的环境符合安装要求https://pypi.org/project/imbalanced-learn/安装方法:打开Anaconda Prompt,输入conda install -c conda-forge imbalanced-learn参考资料:在Anaconda上面安装imblearn包_tbcdn的博客-CSDN博客_anaconda安装imblearn库...原创 2021-12-15 15:12:18 · 3485 阅读 · 1 评论 -
AttributeError : ‘GridSearchCV‘ object has no attribute ‘grid_scores_‘
原因在于grid_scores_在sklearn0.20版本中已被删除,取而代之的是cv_results_。方法1(0.20版本已删除): grid_search.grid_scores_方式2(0.20版本适用的方式): means = grid_search.cv_results_['mean_test_score'] params = grid_search.cv_results_['params']参考资料:AttributeError : 'GridSear...原创 2021-12-15 15:10:26 · 1210 阅读 · 0 评论 -
使用其他模型预测结果没报错但使用xgboost却报错了Invalid missing value
XGBoostError: [01:46:49] c:\users\administrator\workspace\xgboost-win64_release_1.4.0\src\c_api\c_api_utils.h:161: Invalid missing value: null我的测试集已经进行了空值填充,使用逻辑回归和GradientBoostingRegressor时都能正常运行,使用xgboost却有以上错误,是怎么回事呀?xlf = xgb.XGBRegressor(max_depth原创 2021-12-15 15:08:23 · 4242 阅读 · 1 评论 -
使用GridSearchCV给XGboost模型进行参数调优
首先,很幸运的是,Scikit-learn中提供了一个函数可以帮助我们更好地进行调参:sklearn.model_selection.GridSearchCV常用参数解读:estimator:所使用的分类器,如果比赛中使用的是XGBoost的话,就是生成的model。比如: model = xgb.XGBRegressor(**other_params) param_grid:值为字典或者列表,即需要最优化的参数的取值。比如:cv_params = {'n_estimators': [原创 2021-12-15 15:04:02 · 2134 阅读 · 0 评论 -
报错:ValueError: Classification metrics can‘t handle a mix of binary and continuous targets
what?在做预测类机器学习时,当进行到对模型参数调优那一步,把评判标准设为accuracy后,就报错了why?很可能是是一个分类任务,结果导包的时候导成了回归任务how? 把回归类的模型改成分类模型,或者不使用那个专属于分类模型的评判标准。...原创 2021-12-15 14:55:37 · 3529 阅读 · 0 评论 -
DataFrame导入excel的数据
import pandas as pd excelFile = r'TEMP.xlsx'df = pd.DataFrame(pd.read_excel(excelFile))print(df)原创 2021-10-27 10:47:12 · 2107 阅读 · 1 评论 -
dataframe如何取后几列
利用dataframe的切片方法说明:前提是数据列数已知,比如有5列数据,想获得最后3列数据,则可以用:df.iloc[:,2:],即第3列以后的数据。举例:data = pd.DataFrame(np.arange(15).reshape(3,5),index='one','two','three'],columns=['a','b','c','d','e'])data: a b c d eone 0 1 2 3原创 2021-09-18 15:13:21 · 6707 阅读 · 0 评论 -
DataFrame 中取单个值的读取和修改
目录修改对应位置的值知道index 和列名的时候不知道index 根据条件修改的时候所有查询查对应行使用索引值取对应位置的元素值loc 修改iloc[row_index, column_index] (使用索引位置)iloc 修改.at .iat .ix本人感觉:iloc和iat在新手阶段最好用(取值或者修改值)修改对应位置的值知道index 和列名的时候pd.loc[3,'column_name'] = n不知道index 根据条件原创 2021-09-18 15:06:39 · 6144 阅读 · 0 评论 -
dataframe 对象中统计每个列的所有数的和,或者每一行所有值的和
如何计算dataframe 对象中每个列的所有数的和,或者每一行所有值的和?可以使用sum函数。举个例子:现在有个dataframe对象df3,内容如下:如何看每一列的和是多少?代码如下:df3.sum(axis=0)输出如下:如何查看每一行的所有值的和是多少?代码如下:df3.sum(axis=1)输出结果如下:输出的就是每一行的所有值的和了。...原创 2021-09-18 09:19:05 · 4453 阅读 · 0 评论 -
DataFrame的基本方法
目录DataFrame中常见的方法:基本数学操作较为复杂功能:分组统计pandas.DataFrame.count功能参数相关补充给出的例子set_index相关补充DataFrame中常见的方法:基本数学操作df.count() #非空元素计算 df.min() #最小值 df.max() #最大值 df.idxmin() #最小值的位置,类似于R中的which.min函数 df.idxmax() #最大值的位置,类似于R中的which....原创 2021-09-18 08:30:18 · 2046 阅读 · 0 评论 -
dataframe数据写入excel中
to_excel(self, excel_writer, sheet_name='Sheet1', na_rep='', float_format=None,columns=None, header=True, index=True, index_label=None,startrow=0, startcol=0, engine=None, merge_cells=True, encoding=None,inf_rep='inf', verbose=True, freeze_panes=None)参.原创 2021-09-17 21:19:10 · 3704 阅读 · 0 评论 -
DataFrame统计每一行0值的个数
有两种方法:1、方法一:通过(df == 0).astype(int).sum(axis=1),举个例子:in[34]:df = pd.DataFrame({'a':[1,0,0,1,3],'b':[0,0,1,0,1],'c':[0,0,0,0,0]})in[35]:dfOut[35]: a b c0 1 0 01 0 0 02 0 1 03 1 0 04 3 1 0in[36]:(df == 0).astype(int).sum(a原创 2021-09-17 21:15:05 · 2522 阅读 · 0 评论 -
dataframe按照某列排序
1、按一列排序inplace: 原地修改ascending:升序df.sort_values(by="column_name" , inplace=True, ascending=True)2、按多列排序df.sort_values(["column_name1", "column_name2"] , inplace=True, ascending=True)原创 2021-09-16 18:19:40 · 11808 阅读 · 1 评论 -
AttributeError: ‘DataFrame‘ object has no attribute ‘ix‘解决办法
问题原因pandas版本0.20.0及其以后版本中,ix已经不被推荐使用问题解决使用loc和iloc替换locloc从索引中获取具有特定标签的行(或列)。这里的关键是:标签。标签的理解就是name名字。>>> import pandas as pd>>> df = pd.DataFrame(data= [[1, 2, 3],[4, 5, 6], [7, 8, 9]], index=['e', 'f', 'g'], columns=['a','.原创 2021-09-16 15:23:53 · 5864 阅读 · 0 评论 -
Dataframe获取元素值的几种方法
目录pandas.DataFrame.iat根据行索引和列索引获取元素值pandas.DataFrame.loc样例选取元素选取行返回一个series选取行列返回dataframepandas.DataFrame.iloc样例按索引选取元素获取行的seriespandas.DataFrame.iat根据行索引和列索引获取元素值>>> df = pd.DataFrame([[0, 2, 3], [0, 4, 1], [10, 20原创 2021-09-16 15:19:28 · 12280 阅读 · 0 评论 -
Dataframe按行按列遍历的几种方式
遍历数据有以下三种方法:目录按行遍历iterrows():按行遍历itertuples():按列遍历iteritems():简单对上面三种方法进行说明:iterrows(): 按行遍历,将DataFrame的每一行迭代为(index, Series)对,可以通过row[name]对元素进行访问。itertuples(): 按行遍历,将DataFrame的每一行迭代为元祖,可以通过row[name]对元素进行访问,比iterrows()效率高。iter.原创 2021-09-16 14:49:41 · 16387 阅读 · 2 评论 -
DataFrame 输入到 excel 表格
输出单个sheetimport pandas as pddf = pd.DataFrame({ '销量': [10, 20], '售价': [100.123, None],}, index=['aaa', 'bbb'])df.index.name = '货号'df.to_excel('table.xlsx', # 路径和文件名 sheet_name='table1', # sheet 的名字 ...原创 2021-09-14 18:53:03 · 1092 阅读 · 0 评论