- 博客(116)
- 资源 (2)
- 收藏
- 关注
原创 利用python进行数据分析学习笔记(2)
只是个人笔记,没有观赏价值。'''7.2 检测和过滤异常值'''data = pd.DataFrame(np.random.randn(1000, 4))data.describe()col = data[2]colcol[np.abs(col) > 3]datadata.head()data.columnnames =['a', 'b', 'c', 'd']#################### columnnames 不会改变列的名字, 那会改变什么呢?
2021-08-10 15:24:43
345
原创 利用python进行统计分析的一些笔记(1)
这个姿势笔记,比较杂乱,记录学习过程的。第7章。数据清洗"""Series的map方法可以接受一个函数或含有映射关系的字典型对象,使用map是一种实现元素级转换以及其他数据清理工作的便捷方式。map 是一个常用的函数,可以使用它,对变量重新赋值,比如这样的。"""data = pd.DataFrame({'x':range(5), 'y':list('abcde')})datachar2word = { 'a':'apple', 'b':'back...
2021-08-10 12:15:15
189
原创 爬虫 python 爬取php的网页,带有post参数的网页如何爬取
记录一下自己的爬虫踩过的坑,上一次倒是写了一些,但是写得不够清楚,这次,写清楚爬取的过程。这个网站是某省的志愿服务网。就是它了。我向爬取一些组织开展过的活动,比如这一个组织,这个组织的页面找打它不存在什么问题,组织的网址只需要拼接就可以了。看似很容易。基础网址是:https://sd.zhiyuanyun.com/app/org/view.php?id=(*****)前面是一堆,后面只需要把id后面的组织的ID放进去就可以,组织的ID也很好找。就是直接从首页...
2021-08-06 17:02:02
4501
2
原创 记录一下pandas的分组统计功能,agg
主要是记录一下pandas学习,最近要统计一个数据,我向以前stata里面有一个很好用的函数,就是tabstat,可以分组统计,并且输出很多指标。最近处理数据我的数据是这样的。我向按照 valid_num分组,统计avg_stand的均值,标准差,最大,最小。最先想到是的stata的tabstat,以前用的很舒服。现在换python了。感觉可以用groupby,但是不知道怎么用。百度了 一下。group1 = df_avg.groupby('valid_num')group1['a.
2021-07-19 22:57:33
358
原创 python正则替换部分字词,更新字典键名,通过字典构造数据
首先,正则替换部分字,这个还是挺有用的,比如姚把人名的某一个字符替换成*,保障隐私,一个两个手动还可以多了就麻烦。比如有一个名字列表我要快速把中间的字符替换成*号。for k, v in dct230.items(): print(k) k2 = re.sub(r"([\u4e00-\u9fa5])([\u4e00-\u9fa5])([\u4e00-\u9fa5]{0,1})", r"\1*\3", k) print(k2) dct230[k2] = .
2021-07-18 23:33:18
637
原创 matplotlib 制作不等间距直方图
最近在做一个项目,需要用到直方图,不过需要不等间距的,x轴需要设置成不等的间距。百度了一堆,也没找到解决方法,后来找到一个,实际上是做得条形图,用条形图,替换成直方图。因此也不能算是直方图。记录一下过程。我的数据是一个这样的。有两列,这两列数据要放在一个直方图里,并且是不等间距。而且数据都不是均匀的,如果等间距,就有可能造成很多直方很小,不美观。所以,换一下思路。利用numpy的histogram, 先制作一个不等间距的直方图数列,然后用条形图,把组距和数列的高度划出来。代.
2021-07-18 09:01:58
4152
2
原创 记录webscraper的使用过程
这个记录一下webscraper的使用过程。帮朋友爬取山东慈善总会的网页。由于比较简单,我不想写代码了,就用webscraper把。首先是网站上的新闻,如图:这个新闻有13页,都是比较简单的网页。问题在于要爬去多个页面,然后提取二级页面的内容。使用webscraper,这里就是需要二级页面的内容,包括title, time, content。links是设置的链接。页面的链接形式自由最后一个数字在变:eaa-7aef73cf6329&page=2如下:..
2021-07-15 15:25:29
672
原创 python根据列表形成字典。
最近在爬取一个志愿服务的项目,网页是志愿服务网,爬的时候偷懒,只存成了一个大的字典,放到pickle里。无用代码较多。我截图了。得到一个df,这个df是字典的的形式。df = pd.read_pickle(os.path.join(data_dir, org_data_list[1299]))其中PTU是一个里列表,里面还有字典。ptu = df['PTU']ptulen(ptu)ptu里面的每一个元素,有volun_name ,我向做一个大的字典...
2021-07-15 10:31:33
649
原创 python爬虫,记录一下爬取过程,列表数据,翻页,post方式,保存字典
记录一下自己的爬虫的过程把,最近在做个项目。要爬取的网站比较简单。其中的问题是:post方式,网站的数据有一些需要使用post方式才能获得。比如,这部分要看到《发起的项目》,需要鼠标点击,刚开始以为是ajax,其实不算,是js的方式获取的。因此,仔细研究发现,其实网址是这样的。https://s*****view.php?id=GKUdgjKayCQvY具体部分省略,看这个网址,其实没什么,但是通过浏览器检查,可以发现,鼠标点击《发起的项目》,会有一个js动作。如果只
2021-07-03 16:49:42
1290
1
原创 pandas如何获取某一个元素的行号,也就是索引值
之前一直困扰了我很长时间。就是如何获得某一个数据表里面,符合一定条件的值的索引,或者行号。今天终于可以做出来了。比如:有一个数据,想要找到这个数据里面,是2018年的呢,怎么办,可以写for循环,原来都是这样写:for i in range(df.shape[0]): if df.iloc[i, ]['year'] == 2018: print(i) print(df.iloc[i, ]['year']) break这里必须这
2021-07-01 22:35:50
7978
1
原创 python两个数据表中的对应数据相加
记录一下自己的学习过程。有很多省份的数据,想要求全国的综合。这些数据都分别存在csv里。如下:我希望把全部省份加起来, 算一个全国总和。这时候需要用到数据表对应值相加。代码如下:先读进来一个数据表,比如df1 是湖北的。在df1 的基础上创建一个空表。df_empty = pd.DataFrame(np.zeros(df1.shape), columns=df1.columns, index=df1.index)这样df_empty是然后写一个for循环,逐个
2021-07-01 05:53:49
5180
3
原创 修改字典的方法
抄来的描述Python 字典 update() 方法用于更新字典中的键/值对,可以修改存在的键对应的值,也可以添加新的键/值对到字典中。用法与 Python dict() 函数相似。D.update(key/value)实例以下实例展示了 update() 方法的使用方法:D = {‘one’: 1, ‘two’: 2}D.update({‘three’: 3, ‘four’: 4}) # 传一个字典print(D)D.update(five=5, six=6) # 传关键字pri
2021-06-30 09:13:49
1256
原创 爬虫css选择器,选择属性
有一个网页是这样的,我向提取onclick里的值。这时用attr,如下代码: if selector.css(".con10 a.but_alert").get(): id = selector.css(".con10 a.but_alert::attr(onclick)").extract() print(id) dict_org['id'] = id else: dict_org['id'] = None
2021-06-29 15:04:43
337
1
原创 python pandas 合并数据
问题是这样的,我有一个数据表集合,包括很多省份的年份数据。如下图:每个表格数据表内部是这种:比如上海:再比如 云南现在想要把31个省份合并到一个大表,就是如下。可以使用下面的命令:def get_all_cross(): df = pd.DataFrame({ "year":list(range(2013, 2022)), "prov":"all" }) for i in range(len(cross_li
2021-06-29 06:24:21
229
1
原创 python获取列表中元素的索引
python中,列表一般是没有索引,不能像pandas里面的序列和dataframe一样,方便的使用索引。但是如果想知道某一个元素在列表中的位置,就需要使用index比如想要知道一个列表中,哪一个元素是Nonepost_clean.index(None)#post_clean是一个列表这时返回列表中的索引值。如果想知道多个元素,那么使用print([ i for i, x in enumerate(post_clean) if x == None])...
2021-06-27 08:15:08
5746
原创 python 将counter 的结果转换为字典
有时候有这种需要,比如我对一个文本计数了,然后想做词云图。这时候可以用直接使用dict就可以。all_words = sum(corpus2, [])len(all_words)c = Counter(all_words)dict(c.most_common(10)) #直接使用dictwc = WordCloud().generate_from_frequencies(dict(c.most_common(200)))plt.imshow(wc)这也可以认为,dict功
2021-06-24 11:20:24
3710
原创 pandas 排序一个变量
pandas排序一个变量可以使用df2.sort_values(by=['year', 'title2'], axis=0, inplace=True, ascending=[False, False])
2021-06-23 15:15:13
113
原创 pandas的str函数的一些功能
之前要判断有一列是否包含一个字符串,往往写一个for循环,有点麻烦。今天忽然想到可以用str功能呢。记录一下:idx_dy = []for url in df['real_url']: if "dy/article" in url: idx_dy.append(1) else: idx_dy.append(0)df['real_url'].str.contains("dy/article")df['idx_dy'] = df['rea.
2021-06-23 09:44:59
429
原创 python做方差分析和卡方检验
from scipy.stats import chi2_contingencychi2_contingency([[40, 10], [10, 40]], False)做卡方检验,结果为
2021-06-14 22:54:10
407
2
原创 pandas 删除有缺失值的个案,做回归分析
如题:df_result3 = df.dropna(axis = 0, subset = ['politic_enter1very','poli_effect', 'poli_know', 'authoritorian', 'idea_left_is_the_big_value' ])df_result3.shapey = df_result3['politic_enter1very']x = df_result3[['poli_effect', 'poli_know', 'authori
2021-06-11 10:07:54
341
2
原创 python字典随时添加元素和值
python的字典可以随时添加元素,使用update比如:dict_a = {}dict_a.update(B = 4)dict_得到结果。
2021-06-10 08:22:27
359
2
原创 修改sublime列编辑快捷键
这个问题在好几个电脑上搞了好几次,每次都要搜搜,记录备忘。的sublime列编辑修改为简单的快捷键:路径:Preferences→Key Bindings默认是 { "keys": ["alt+shift+up"], "command": "select_lines", "args": {"forward": false} }, { "keys": ["alt+shift+down"], "command": "select_lines", "args": {"forward": tru
2021-06-09 20:00:54
369
原创 pandas把多个列相加求和、输出字母a-z
今天分析数据遇到两个问题,1,把pandas的dataframe多个列相加,得到一个和,怎么实现。另外如何输出字母‘a-z'。分别记录一下:多个列相加,
2021-06-07 22:45:26
2638
原创 python字典写入csv文件
try: with open(csv_file, 'w', encoding='utf-8') as csvfile: print(csvfile) writer = csv.DictWriter(csvfile, fieldnames=csv_columns) writer.writeheader() for data in dict_data: wr...
2021-05-15 21:07:08
679
原创 pandas把频数统计转换成数据表
有一个数据表,我统计了一下频数,现在想把频数统计表转换成dataframe,比如:df['region'].value_counts()df_region_count = df['region'].value_counts()df_region_count2 = df_region_count.reset_index()df_region_count2.columns = ['name', 'count']df_region_count2...
2021-04-18 11:35:03
651
原创 python获取列表中指定元素的下标
python中列表元素虽然有下标,但是有时候需要特定的用途,查找指定的特殊值的元素的下标。这时候可以用for循环,打印出来下标,但是每次都要写for循环,感觉还是有点麻烦。比如这样使用enumerate,枚举列表中的元素,a = [1, 2, 8, None, 'test']for i in range(len(a)): if a[i] == None: print(i)for i in range(len(a)): if isinstance(a[i
2021-03-31 21:56:36
11005
原创 python字典通过键值获取键名,通过value获取key
python通过字典的value获取key,最好的方法是反转键值,然后通过key在获得value比如:也可以通过list把键变成列表,然后,在list中获取字典相应的值对应的键,比如但是这样很麻烦,很容易不知道在干什么。其他的方法也有。比这两种还麻烦。...
2021-03-29 08:33:35
5458
2
原创 列出mongodb里的所有表的名字,合并所有表到一个大表,用pandas
如题:import pymongoimport pandas as pdclient = pymongo.MongoClient()wk_dir = "dataForAnlys/new_2021"db = client.RMW_FINAL_DB2021327coll_names = db.list_collection_names()db.list_collection_names()coll_namesdf = pd.DataFrame()for cn in coll_nam
2021-03-29 06:02:39
886
原创 mongodb更新数据,查找相同的id,有重复的,就更新。
最近在用mongodb保存一些爬虫的数据。遇到问题就是,需要把那些重复的数据更新,这个网站是滚动的,以前爬到的数据,同一个页面,可能现在有人回复了,页面的内容页就变了。向把以前保存过的数据再更新一下。不再重复保存。当然重复保存也可以,后期需要删除重复的数据。最好还是更新。使用mongodb 的update_one命令可以实现这种功能。比如:import pymongoclient = pymongo.MongoClient()db = client.dbcollection = db.c
2021-03-27 13:43:52
1495
原创 pandas 判断某个变量出于某一个范围
pandas判断某个变量是否出于某一个范围,用between。比如df_sat = df[df['sat_length'].between(6, 8)]
2021-03-16 21:41:27
2110
原创 pandas按照索引来赋值,按照数据表的索引批量给某一个变量赋值的方法。
df_test = pd.DataFrame(np.arange(40).reshape(10, 4), columns=['a', 'b', 'c', 'd'], index=np.arange(10))df_test.at[[1, 3, 5, 7], 'a'] = 0df_test结果如图:当然,还可以使用这个方法https://www.cnpython.com/qa/292739参考这个方法,有时候,不好用,有时候好用,不知道为什么。...
2021-02-07 08:41:17
3241
原创 结巴分词jieba添加自定义词典
结巴分词添加自定义词典,有时候很有必要。比如下面这段话:test_text = """我们的健康码也是绿色的, 这凭什么就限制我们的就医!"""如果使用默认的分词,那么,“健康码”这个词会分成“健康”和“码”这里可以使用词典方式,添加自定义词典。新建一个txt文件,在文件里输入“健康码”以utf-8形式保存,这里使用pycharm,默认就是utf8.不用管。然后使用jieba.load_userdict(os.path.join(wk_dir, "jiebaD
2021-02-07 08:23:20
15257
3
原创 pandas把索引变成列
pandas把索引变成列,只需要使用reset_index。这样index就会变成一列变量出现在元数据表中。比如原来的数据表是上面这样,使用reset_index就变成这样具体reset_index,还有一些更细的应用,后续随着学习再继续更新吧...
2021-02-06 22:26:00
21760
原创 python 实现判断一个列表中的一个或多个元素是否存在于一个字符串中。
先描述一下问题,我想判断几个特定的字符串,是否存在某一个长字符串之中,比如,有一个大数据表,里面有很多字符串的列。是这样的。想要判断 这个列里面,是否有哪个包含 比如“肺炎”, “新冠”, “公正” 等等,这样的词。如果包含,就为True, 如果想判断的词不多,直接用or ,但是多了,写的语句太长,有点麻烦就使用下面的方式。test10 = ['建议建立比较公正、客观的晋职称规则', '建议不要拿处分卡教师晋职称', '建议全区中小学教师晋职称实行统一的规则', '投诉呼玛教
2021-02-01 08:54:37
6665
4
原创 python里面pandas对数据表的变量重新赋值,将满意,不满意的李克特量表赋值为数字
pandas里,将李克特量表的字符串,比如赋值为5, 4, 3, 2, 1方法如下:定义一个字典y_dict = { "很满意":5, "满意":4, "基本满意":3, "不满意":2, "很不满意":1}然后使用map,这里‘y_sat'是原来的变量,即字符串格式的变量,’y_value‘,就转换成了新变量。5-1的数字。df['y_value'] = df['y_sat'].map(y_dict)如果原来的变量里..
2021-01-30 05:42:44
4028
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅