Python DataFrame 和函数的运用

要求创建一个名叫normalized的函数
输入score之后每个人的平均分和科目平均分会出来
图片说明

图片说明
没有学过python 所以不是很能理解函数和Dataframe的用法

2个回答

# Import
import pandas as pd

# Specify Info
data = {'姓名':['周杰伦','林俊杰','陈信宏','丁彦仪','杜兰特'],
        '语文':[79,65,64,54,24],
        '数学':[75,54,65,58,67],
        '英语':[56,46,87,45,95]}

df = pd.DataFrame(data)
'''
第一步是导入数据,导入数据的方式有很多种。

1. 我们这里采用的是数据导入的形式是我们自己手动输入生成一个【字典】,这个字典当中
   包含了四个key-value对,他们分别是‘姓名’、‘语文’、‘数学’、‘英语’,这些就是
   他们的key,而value以列表的形式呈现分别表明了这五位同学在每一科上的得分

2. 你也可以通过导入文件的形式导入数据,形如 pd.read_csv('file.csv') 


总之,都是要将数据规整好,随后放入我们的DataFrame
'''

图片说明

上图显示了我们创建的这个DataFrame的格式

# Def
def normalized(df):
    subject_list = df.columns.to_list()
    subject_list.remove('姓名')
    for subject in subject_list:
        print(f'{subject}的学科平均分是:{df[subject].mean()}')
    for name in df['姓名'].to_list():
        print(f'{name}同学的三科平均分是:'+str(int(df[df['姓名']==name].mean(1))))

'''
第二步我们来定义你提到的normalized函数。

在这个函数中我们只需要输入一个参数,也就是指定你所要分析DataFrame

针对于输入的df,该函数会首先遍历每一个学科,打印每一学科的平均分;接着会遍历每一位同学,
打印每一位同学的三科的平均分

对于Python的基本知识以及DataFrame知识的组合运用是数据分析当中的关键,如果你想进一步
了解Pandas的使用可以随时与我交流,希望帮助到你。
'''

图片说明

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
求大神指教!!!python dataframe apply 函数报错
![图片说明](https://img-ask.csdn.net/upload/201909/23/1569168977_105909.jpg) ![图片说明](https://img-ask.csdn.net/upload/201909/23/1569169065_851874.jpg) 代码和报错截图如上, 请问有哪位大神知道这是什么原因? 感谢!!!
pandas的dataframe的同一id的多行数据按其中一个特征将数据平铺该怎么简洁操作?
![图片说明](https://img-ask.csdn.net/upload/202001/15/1579069054_942084.png) 问题描述的效果如上图所示,python里有什么函数有这功能或有什么简洁高效的代码可以实现呢?
python pandas用函数算距离时报错
在网上copy来的一个算经纬度的方法,但在实际操作运行到 lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2]) 的时候到报错:”TypeError: cannot convert the series to <class 'float'》,显示series不能转换为float,请问下各位大佬这个问题怎么解决 需要怎么修改脚本。 ``` import numpy as np import pandas as pd test_data = pd.DataFrame(pd.read_excel("test.xlsx")) def haversine(lon1, lat1, lon2, lat2): # 经度1,纬度1,经度2,纬度2 """函数作用:计算两个经纬度之间的距离""" # 将十进制度数转化为弧度 lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2]) # haversine公式 dlon = lon2 - lon1 dlat = lat2 - lat1 a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2 c = 2 * asin(sqrt(a)) r = 6371 # 地球平均半径,单位为公里 return c * r * 1000 test_data["距离(米)"] = test_data.eval('@haversine(经度,纬度,Longitude,Latitude)') """ 表内容举例: name 经度 纬度 Longitude Latitude A 113.545761 23.106667 113.09461 23.39367 B 113.545761 23.106667 113.173833 23.336054 C 113.545761 23.106667 113.1799 23.43946 D 113.545761 23.106667 113.1975278 23.38591667 E 113.545761 23.106667 113.1975278 23.38591667 F 113.545761 23.106667 113.219664 23.100377 G 113.545761 23.106667 113.219664 23.100377 H 113.545761 23.106667 113.22253 23.18483 I 113.545761 23.106667 113.22253 23.18483 """ ``` 程序运行到
python pandas apply 原理求解,如何在dataframe 中将同一行的某个数值塞进df结构的一列?
有一个data frame结构,其中一列是data frame组成的,其他的列都是str或者数值之类的,如何将一行中str一类的塞入df里? 我试过apply,结果很诡异。。。 函数里print出来的结果是想要的,但是返回以后拿到的结果city就都是 tyu一个数值了 高手求解。。。 ``` import pandas as pd def testcc(df1): #tmpdf = df1 tmpdf = df1['c'] value = df1['a'] # value = 111 tmpdf['city']=value print(tmpdf) return tmpdf df1 = pd.DataFrame({'a': ['qwe'], 'b': ['asd']}) df4 =df1 df3 = pd.DataFrame({'a': ['qwe']}) df2 = pd.DataFrame({'a': ['qwe', 'wer', 'ert', 'rty', 'tyu'], 'b': ['asd', 'sdf', 'dfg', 'fgh', 'ghj'], 'c': [df1,df3,df4,df1,df1]}) df2['d']=df2.apply(testcc,axis=1) print('------------------') print(df2['d']) ``` 结果是 ``` a b city 0 qwe asd qwe a b city 0 qwe asd qwe a city 0 qwe wer a b city 0 qwe asd ert a b city 0 qwe asd rty a b city 0 qwe asd tyu ------------------ 0 a b city 0 qwe asd tyu 1 a city 0 qwe wer 2 a b city 0 qwe asd tyu 3 a b city 0 qwe asd tyu 4 a b city 0 qwe asd tyu Name: d, dtype: object ```
dataframe 多列运算形成新的列问题
有一个名为“df_source”的dataframe: ![图片说明](https://img-ask.csdn.net/upload/201909/25/1569374877_884320.jpg) 想新添加一列“result1”为前两列相除结果,使用如下代码实现: df_source.eval('result1 = total_owner_equities/good_will',inplace = True) 提示错误:TypeError: unsupported operand type(s) for /: 'object' and 'object' 不知道错在哪里 然后想要用apply结合匿名函数解决,代码如下: df_source["result1"]=df_source[[" total_owner_equities","good_will"]].apply(lambda x:x[" total_owner_equities"]+x["goodwill"],axis=1) 但是也提示错误了,可能是我的用法有问题吧,请帮忙看下如何解决,哪种方法都行哈
pandas dataframe数据结构,想检查索引列中的数据是否唯一怎么检查
如题 pandas dataframe数据结构,想检查索引列中的数据是否唯一怎么检查 不知道pandas中有没有这样的函数
一个有关pandas 中 Rolling_apply函数的问题
有关这个函数,我已经察看了pandas的手册,但是由于缺乏例子,还是有些没明白 首先,这个函数通过内部参数func 对某个dataframe向指定函数进行Rollingwindos的运算 我想知道 他每次向这个函数传递的参数是什么 如何能传递多个参数,其次可以获得什么数据类型的返回值 这里我提供一个例子 比如有个DataFrame变量data 格式如下 time price volume 21:00:00 1000 10 21:00:01 999 5 21:00:02 998 4 21:00:03 998 3 21:00:04 996 11 21:00:05 995 13 我想能生成一列 用来计算2秒内price 的Volume加权平均
dataframe 分组后应用自定函数计算,为什么第一个索引会应用两边
![图片说明](https://img-ask.csdn.net/upload/201911/21/1574350505_156770.png) index = 1 输出了两遍,不明白为什么 求大神指导,非常感谢
Python, list of dictionaries遍历筛选
![图片说明](https://img-ask.csdn.net/upload/201908/28/1566923016_746946.png) 问题说明:数据导入index3就是json字符串格式(带单引号str),想要提取字典里面key值为"name"的所有value; 已有解决方案:把json转码成list of dictionaries,三层循环,遍历dataframe,遍历list,遍历字典key; 问题:数据量稍微多一点,速度特别慢,python小白求大神想想其他的方案,比如pandas有没有好用的函数?
Python,json转码,list of dictionaries遍历筛选
问题说明:原始数据导入字段index3就是json字符串格式(带单引号str),想要提取字典里面key值为"name"的所有value; ``` df_tmp #pandas dataframe #字段index3是json字符串格式(带单引号str),去掉单引号就是list of dics df_tmp["index3"][0] '[{"name": "Mary", "age":"7", "Sex":"F"},{"name":"Jack", "age":"11","Sex":"M"}]' df_tmp["index3"][1] '[{"name":"Jack", "age":"11","Sex":"M"},{"name":"Lucy","age":"9","Sex":"F"},{"name":"Nancy", "age":"10","Sex":"F"}]' df_tmp["index3"][2] '[{"name": "Luke", "age":"6", "Sex":"F"},{"name":"Lily", "age":"11","Sex":"F"}]' ``` 已有解决方案:把json转码成list of dictionaries,三层循环,遍历dataframe,遍历list,遍历字典; 问题:数据量稍微多一点,速度特别慢,python小白求大神想想其他的方案,比如pandas有没有好用的函数,可不可以用mysql处理?
shc框架将dataframe写入Hbase int型会乱码
Python用shc框架将dataframe写入Hbase int型会乱码,而且读回df同样乱码 ``` df_test_HBase = sql_sc.read.format('jdbc').options(url=jdbc_url_test,driver=jdbc_driver,dbtable='testHBase').load() df_test_HBase.createOrReplaceTempView("test_HBase") df_cast_HBase = sql_sc.sql("select CAST(id as String) id,name,CAST(age as String) age,CAST(gender as String) gender,cat,tag,level from test_HBase") df_cast_HBase.show() dep = "org.apache.spark.sql.execution.datasources.hbase" catalog = """{ "table":{"namespace":"default", "name":"teacher", "tableCoder":"PrimitiveType"}, "rowkey":"key", "columns":{ "id":{"cf":"rowkey", "col":"key", "type":"string"}, "name":{"cf":"teacherBase", "col":"name", "type":"string"}, "age":{"cf":"teacherBase", "col":"age", "type":"string"}, "gender":{"cf":"teacherBase", "col":"gender","type":"string"}, "cat":{"cf":"teacherDetails", "col":"cat","type":"string"}, "tag":{"cf":"teacherDetails", "col":"tag", "type":"string"}, "level":{"cf":"teacherDetails", "col":"level","type":"string"} } } """ df_cast_HBase.write.options(catalog=catalog,newTable="5").format(dep).save() ``` 我目前只能通过Cast函数将int转成String并且把catalog中type为int也改成string后写入HBase才不乱码,但只是治标不治本,求大神给个治本的解决办法!! 前后对比图: ![图片说明](https://img-ask.csdn.net/upload/201904/28/1556424025_543013.png)
用ctypes向dll传入的数组,返回python后,其中的数据有时正确有时错误,怎么办?
运行环境: win10 + anaconda5.3 + jupyter python文件 ``` import numpy as np import pandas as pd mylib = ctypes.cdll.LoadLibrary('mydll.dll') C_fun = mylib.func_name C_fun.restypes = None C_fun.argtypes = pass_args_Struct, c_double*10 # pass_args_Struct 是继承ctypes.Structure定义的结构体,代码略 def generate_Struct(data, 其他参数略): # 生成 pass_args_Struct,代码略 # data是个DataFrame,用于接收下面myClass的data属性 class myClass(): # myclass有个data属性,data是一个DataFrame # 其他代码略 def func1(self, x): # 删除self.data的一列,再根据x参数重新添加这一列,代码略 struct_x = generate_Struct(self.data, 其他参数略) myArr = (c_double*10)() C_fun(struct_x, myArr) npArr = np.ctypeslib.as_array(myArr,(10,)) return pd.Series(npArr, _column_names) # _column_names 定义略 def func2(self): # 生成df,df是个只有一列值的DataFrame,代码略 return df.apply(lamba x: self.func1(x[0]), axis=1, result_type='expand')) # 其他代码略 ``` mydll.dll中的代码 ``` #define API extern "C" __declspec(dllexport) typedef pass_args_Struct { // 对应于python中pass_args_Struct,代码略 } API void func_name(pass_args_Struct* x, double arr[]) { // 对arr进行一些操作,代码略 } ``` 在jupyter中: 导入前述Python文件并生成 myObject=myClass() 之后, 执行ret1 = myObject.func1()没什么问题, 但是ret2 = myObject.func2()的结果则有时正确有时错误,错误的时候,ret2中会出现一些NaN值和错误的值。 之前把generate_Struct()定义成myclass的一个方法,连ret1也会出错; 之前的func1(self, x)中采用: ``` func1(self, x): # 其他代码略 myArr = np.ctypeslib.as_array(myArr,(10,)) # 左边不用新名而直接用myArr return pd.Series(myArr, _column_names) ``` 则ret1会频繁出错,基本上是对一次就错一次。 程序一直能运行,只是结果有时不正确。 请教各位大牛,正确的写法是什么样子的? ==================================================== =====2018年11月30日更新==================================== 我可能发现问题了: Python文件TestX.py(放在PYTHONPATH下): ``` import numpy as np from ctypes import Structure, c_double, c_int, POINTER class struct_args(Structure): _fields_ = [('data',POINTER(c_double*2)), ('rows',c_int)] class test(): def __init__(self): self.data = None def get_args_2C(self): arr = np.ascontiguousarray(self.data[['foo','bar']].values, dtype=np.float) rows = c_int(arr.shape[0]) return struct_args(arr.ctypes.data_as(POINTER(c_double*2)), rows) ``` 在jupyter中: ``` import TestX import pandas as pd import numpy as np mydata = pd.DataFrame(np.arange(1600).reshape(800,2),columns=['foo','bar']) # 行数不要太小 mytest = TestX.test() mytest.data = mydata args = mytest.get_args_2C() np.ctypeslib.as_array(args.data,(800,)) ``` 输出的值经常是错误的。 ==================================================== =====2018年12月3日更新==================================== 不知道为什么,但总算是不出错了: python文件: ``` from ctypes import Structure,POINTER,c_double def Struct_A(ctypes.Structure): _fields_ = [(), # 其他成员略 ('my_arr',POINTER(c_double)] # 这个地方用c_double*10后面也会出错 class myClass(): def makeStructA(self, 其他参数): arr = (c_double*10)() SA = Struct_A(……,arr) # 其他成员略 return SA def myMethod(self, 其他参数): SA = self.makeStructA(其他参数) # myCfun是dll中的函数,功能是利用SA中数据进行一些计算,然后把结果写入SA.my_arr,具体代码略 myCfun(SA) ret = pd.Series(np.ctypeslib.as_array(SA.my_arr,(10,)), _columns_name) ret['odd'] = 1 # 这里随便新加点什么就不会出错了 return ret ``` 以上代码如果没有ret['odd']=1那一行,则myObject.myMethod()返回的Series中都是错误的值(看着像是内存未初始化,比如-2.24934335e308之类),而随便给ret添加点什么内容,返回值就是正确的了。 但是在以下计算中仍然会出错,只是出错的频率变小了,而且多运行几次就会正确: ``` class myClass(): # 接上文 def myOptimize(self, arg_name, arg_range): ret = pd.DataFrame({arg_name:arg_range}) _optimize = lambda arg: self.myMethod(**{arg_name:arg[arg_name]}) return ret.join(ret.apply(_optimize, axis=1, result_type='expand')) ``` ===================================== =====2018年12月7日更新==================================== 又出错了!!!12月3日写的: ``` ret['odd'] = 1 # 这里随便新加点什么就不会出错了 ``` 那个函数确实不出错了,但是别的函数用同样的写法(先生成c_double*shape再传入dll在C中写入值)得到的ret无论添加行还是添加列,多运行几次总会出错(内存被清理)。 换一种写法: ``` 略 arr=np.zeros(shape) 略 # 然后传入arr.ctypes.data_as(POINTER(c_double*10)) ``` 目前暂时不出错了。 =====2018年12月13日更新==================================== 前面的写法有问题:用函数生成结构体(比如makeStructA)再传递给dll就会出错,直接将makeStuctA的代码放到myMethod中就不会出错。 另外,传递结构体时用byref就不会出错了,在dll中用malloc给结构体的成员赋值都不会出错。
python运行有错误:这是对数据进行分析生成可视化界面的程序(我是小白,请说下解决方法)
运行错误: C:\Users\Administrator\PycharmProjects\untitled\venv\Scripts\python.exe C:/Users/Administrator/PycharmProjects/untitled/dianying/src/analysis_data.py 一共有:16590个 Building prefix dict from the default dictionary ... Loading model from cache C:\Users\ADMINI~1\AppData\Local\Temp\jieba.cache Loading model cost 0.808 seconds. Prefix dict has been built succesfully. Traceback (most recent call last): File "C:/Users/Administrator/PycharmProjects/untitled/dianying/src/analysis_data.py", line 252, in <module> jiebaclearText(content) File "C:/Users/Administrator/PycharmProjects/untitled/dianying/src/analysis_data.py", line 97, in jiebaclearText f_stop_text = f_stop.read() File "D:\python111\lib\codecs.py", line 321, in decode (result, consumed) = self._buffer_decode(data, self.errors, final) UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa1 in position 3: invalid start byte Process finished with exit code 1 代码如下: ''' data : 2019.3.28 goal : 可视化分析获取到的数据 ''' import csv time = [] nickName = [] gender = [] cityName = [] userLevel = [] score = [] content = '' # 读数据 def read_csv(): content = '' # 读取文件内容 with open(r'D:\maoyan.csv', 'r', encoding='utf_8_sig', newline='') as file_test: # 读文件 reader = csv.reader(file_test) i = 0 for row in reader: if i != 0: time.append(row[0]) nickName.append(row[1]) gender.append(row[2]) cityName.append(row[3]) userLevel.append(row[4]) score.append(row[5]) content = content + row[6] # print(row) i = i + 1 print('一共有:' + str(i - 1) + '个') return content import re, jieba # 词云生成工具 from wordcloud import WordCloud, ImageColorGenerator # 需要对中文进行处理 import matplotlib.font_manager as fm from pylab import * mpl.rcParams['font.sans-serif'] = ['SimHei'] from os import path d = path.dirname(__file__) stopwords_path = 'D:\ku\chineseStopWords.txt' # 评论词云分析 def word_cloud(content): import jieba, re, numpy from pyecharts import WordCloud import pandas as pd # 去除所有评论里多余的字符 content = content.replace(" ", ",") content = content.replace(" ", "、") content = re.sub('[,,。. \r\n]', '', content) segment = jieba.lcut(content) words_df = pd.DataFrame({'segment': segment}) # quoting=3 表示stopwords.txt里的内容全部不引用 stopwords = pd.read_csv(stopwords_path, index_col=False, quoting=3, sep="\t", names=['stopword'], encoding='utf-8') words_df = words_df[~words_df.segment.isin(stopwords.stopword)] words_stat = words_df.groupby(by=['segment'])['segment'].agg({"计数": numpy.size}) words_stat = words_stat.reset_index().sort_values(by=["计数"], ascending=False) test = words_stat.head(500).values codes = [test[i][0] for i in range(0, len(test))] counts = [test[i][1] for i in range(0, len(test))] wordcloud = WordCloud(width=1300, height=620) wordcloud.add("影评词云", codes, counts, word_size_range=[20, 100]) wordcloud.render(d + "\picture\c_wordcloud.html") # 定义个函数式用于分词 def jiebaclearText(text): # 定义一个空的列表,将去除的停用词的分词保存 mywordList = [] text = re.sub('[,,。. \r\n]', '', text) # 进行分词 seg_list = jieba.cut(text, cut_all=False) # 将一个generator的内容用/连接 listStr = '/'.join(seg_list) listStr = listStr.replace("class", "") listStr = listStr.replace("span", "") listStr = listStr.replace("悲伤逆流成河", "") # 打开停用词表 f_stop = open(stopwords_path, encoding="utf8") # 读取 try: f_stop_text = f_stop.read() finally: f_stop.close() # 关闭资源 # 将停用词格式化,用\n分开,返回一个列表 f_stop_seg_list = f_stop_text.split("\n") # 对默认模式分词的进行遍历,去除停用词 for myword in listStr.split('/'): # 去除停用词 if not (myword.split()) in f_stop_seg_list and len(myword.strip()) > 1: mywordList.append(myword) return ' '.join(mywordList) # 生成词云图 def make_wordcloud(text1): text1 = text1.replace("悲伤逆流成河", "") bg = plt.imread(d + "/static/znn1.jpg") # 生成 wc = WordCloud( # FFFAE3 background_color="white", # 设置背景为白色,默认为黑色 width=890, # 设置图片的宽度 height=600, # 设置图片的高度 mask=bg, # margin=10, # 设置图片的边缘 max_font_size=150, # 显示的最大的字体大小 random_state=50, # 为每个单词返回一个PIL颜色 font_path=d + '/static/simkai.ttf' # 中文处理,用系统自带的字体 ).generate_from_text(text1) # 为图片设置字体 my_font = fm.FontProperties(fname=d + '/static/simkai.ttf') # 图片背景 bg_color = ImageColorGenerator(bg) # 开始画图 plt.imshow(wc.recolor(color_func=bg_color)) # 为云图去掉坐标轴 plt.axis("off") # 画云图,显示 # 保存云图 wc.to_file(d + r"/picture/word_cloud.png") # 评论者性别分布可视化 def sex_distribution(gender): # print(gender) from pyecharts import Pie list_num = [] list_num.append(gender.count('0')) # 未知 list_num.append(gender.count('1')) # 男 list_num.append(gender.count('2')) # 女 attr = ["其他", "男", "女"] pie = Pie("性别饼图") pie.add("", attr, list_num, is_label_show=True) pie.render(d + r"\picture\sex_pie.html") # 评论者所在城市分布可视化 def city_distribution(cityName): city_list = list(set(cityName)) city_dict = {city_list[i]: 0 for i in range(len(city_list))} for i in range(len(city_list)): city_dict[city_list[i]] = cityName.count(city_list[i]) # 根据数量(字典的键值)排序 sort_dict = sorted(city_dict.items(), key=lambda d: d[1], reverse=True) city_name = [] city_num = [] for i in range(len(sort_dict)): city_name.append(sort_dict[i][0]) city_num.append(sort_dict[i][1]) import random from pyecharts import Bar bar = Bar("评论者城市分布") bar.add("", city_name, city_num, is_label_show=True, is_datazoom_show=True) bar.render(d + r"\picture\city_bar.html") # 每日评论总数可视化分析 def time_num_visualization(time): from pyecharts import Line time_list = list(set(time)) time_dict = {time_list[i]: 0 for i in range(len(time_list))} time_num = [] for i in range(len(time_list)): time_dict[time_list[i]] = time.count(time_list[i]) # 根据数量(字典的键值)排序 sort_dict = sorted(time_dict.items(), key=lambda d: d[0], reverse=False) time_name = [] time_num = [] print(sort_dict) for i in range(len(sort_dict)): time_name.append(sort_dict[i][0]) time_num.append(sort_dict[i][1]) line = Line("评论数量日期折线图") line.add( "日期-评论数", time_name, time_num, is_fill=True, area_color="#000", area_opacity=0.3, is_smooth=True, ) line.render(d + r"\picture\c_num_line.html") # 评论者猫眼等级、评分可视化 def level_score_visualization(userLevel, score): from pyecharts import Pie userLevel_list = list(set(userLevel)) userLevel_num = [] for i in range(len(userLevel_list)): userLevel_num.append(userLevel.count(userLevel_list[i])) score_list = list(set(score)) score_num = [] for i in range(len(score_list)): score_num.append(score.count(score_list[i])) pie01 = Pie("等级环状饼图", title_pos='center', width=900) pie01.add( "等级", userLevel_list, userLevel_num, radius=[40, 75], label_text_color=None, is_label_show=True, legend_orient="vertical", legend_pos="left", ) pie01.render(d + r"\picture\level_pie.html") pie02 = Pie("评分玫瑰饼图", title_pos='center', width=900) pie02.add( "评分", score_list, score_num, center=[50, 50], is_random=True, radius=[30, 75], rosetype="area", is_legend_show=False, is_label_show=True, ) pie02.render(d + r"\picture\score_pie.html") time = [] nickName = [] gender = [] cityName = [] userLevel = [] score = [] content = '' content = read_csv() # 1 词云 jiebaclearText(content) make_wordcloud(content) # pyecharts词云 # word_cloud(content) # 2 性别分布 sex_distribution(gender) # 3 城市分布 city_distribution(cityName) # 4 评论数 time_num_visualization(time) # 5 等级,评分 level_score_visualization(userLevel, score)
nltk统计在超过5000条记录中出现的词
dataframe中某一列为文本 现在想统计出在超过5000条记录中出现的词,有什么函数可以用吗? ![图片说明](https://img-ask.csdn.net/upload/201904/04/1554390015_518241.png) 处于没有思路的状态...
pandas写入csv,字段行业一直重复怎么解决???
import requests import json import re import csv import pandas as pd # 获取每个电影分类链接的函数 def get_movie_type(): url='https://movie.douban.com/chart' resp=requests.get(url) result=re.findall(r'<span><a href="(/typerank\?type_name=.*?)">(.*?)</a></span>',resp.text) return result # 获取每种电影前100部: def get_movie_rank(type_url): type_url = 'https://movie.douban.com/j/chart/top_list?' + type_url[23:] + '&start=0&limit=100' resp=requests.get(type_url) return resp.text # 存储 def save(movie): movie=pd.DataFrame([movie],columns=['类型','电影名称','地区','上映日期','评分','排行','地址']) movie.to_csv(r'C:\Users\Administrator\Desktop\python\练习\第五周作业_周峰\test3.csv',mode='a',index=None) def run(): types_url=get_movie_type() for url in types_url: global movie_type_name movie_type_name = url[1] print('正在储存'+movie_type_name+'类型的电影') type_url = url[0] result=get_movie_rank(type_url) #json解析 result=json.loads(result) #获取所需电影信息 for massage in result: #global title,regions,release_date,score,rank,movieurl title=massage['title'] regions=massage['regions'][0] release_date=massage['release_date'] score=massage['score'] rank = massage['rank'] url = massage['url'] movie=[movie_type_name,title,regions,release_date,score,rank,url] # 储存包含电影信息 save(movie) print(movie_type_name + '的类型储存完毕!') run() ![图片说明](https://img-ask.csdn.net/upload/201908/07/1565160682_681298.png)
为什么我在predict_classes(x)中的x用了很多格式但总是报错?
#BP人工神经网络的实现 #1、读取数据 #2、keras.models Sequential /keras.layers.core Dense Activation #3、Sequential建立模型 #4、Dense建立层 #5、Activation激活函数 #6、compile模型编译 #7、fit训练(学习) #8、验证(测试,分类预测) #使用人工神经网络预测课程销量 #数据的读取与整理 import pandas as pda import numpy as npy fname = 'D:\\shuju\\fenleisuanfa\\lesson2.csv' dataf = pda.read_csv(fname) x = dataf.iloc[:,1:5].values y = dataf.iloc[:,5:6].values for i in range(0,len(x)): for j in range(0,len(x[i])): thisdata = x[i][j] if(thisdata =='是' or thisdata == '多' or thisdata == '高'): x[i][j] = 1 else: x[i][j] = 0 for i in range(0,len(y)): thisdata = y[i] if(thisdata == '高'): y[i] = 1 else: y[i] = 0 xf = pda.DataFrame(x) yf = pda.DataFrame(y) x2 = xf.values.astype(int) y2 = yf.values.astype(int) #使用人工神经网络模型 from keras.models import Sequential from keras.layers.core import Dense,Activation import keras.preprocessing.text as t from keras.preprocessing.text import Tokenizer as tk from keras.preprocessing.text import text_to_word_sequence model = Sequential() #输入层 model.add(Dense(10,input_dim = len(x2[0]))) model.add(Activation('relu')) #输出层 model.add(Dense(1,input_dim = 1)) model.add(Activation('sigmoid')) #模型的编译 model.compile(loss = 'binary_crossentropy',optimizer = 'adam', metrics = ['accuracy']) #训练 rst = model.fit(x2,y2,epochs = 10,batch_size = 100) #预测分类 model.predict_classes(x).reshape(len(x)) ![图片说明](https://img-ask.csdn.net/upload/201909/11/1568184347_152341.jpg) ![图片说明](https://img-ask.csdn.net/upload/201909/11/1568184147_136600.jpg) ![图片说明](https://img-ask.csdn.net/upload/201909/11/1568184174_122879.jpg)
float is not callable
# 构建月净收入函数 #净收入 = 月薪 - 五险一金 + 奖金 - 个人所得税 def final_income (s,b_avg): df_i = pd.DataFrame ({ '月薪' : [s for i in range (120)], '五险一金': [insurance (s) for i in range (120)], '奖金' : bonus (b_avg) }) df_i['计税部分'] = df_i ['月薪'] + df_i ['奖金'] df_i['个人所得税'] = df_i ['计税部分']. apply(lambda x: tax(x)) df_i['净收入'] = df_i ['月薪'] + df_i ['奖金'] + df_i ['五险一金'] - df_i ['个人所得税'] return df_i result = final_income (10000,1500) result() ``` 这个是我打的代码,但是提示我float is not callable, 自己尝试调试,发现result = final_income (10000,1500) 以上的代码都是正确的, 有没有大佬帮忙指点一下迷津,怎么处理 def tax (salary_sum): if salary_sum <= 3500: return 0 elif salary_sum <= (3500+1500): return (salary_sum - 3500) * 0.03 elif salary_sum <= (3500 + 1500 +3000): return 1500 * 0.03 + (salary_sum- 1500 - 3500) * 0.1 elif salary_sum <= (3500 + 1500 + 3000 + 4500): return 1500 * 0.03 + 3000 * 0.1 + (salary_sum - 1500-3500-3000) * 0.2 elif salary_sum <= (3500 + 1500 + 3000 + 4500 + 26000): return 1500 * 0.03 + 3000 * 0.1 + 4500 * 0.2 + (salary_sum - 1500-3500-3000-4500) * 0.3 elif salary_sum <= (3500 + 1500 + 3000 + 4500 + 26000 + 20000) : return 1500 * 0.03 + 3000 * 0.1 + 4500 * 0.2 + 26000 * 0.25 + (salary_sum - 1500 - 3500 - 3000 - 4500 - 26000) * 0.3 elif salary_sum <= (3500 + 1500 + 3000 + 4500 + 26000 + 20000 + 25000) : return 1500 * 0.03 + 3000 * 0.1 + 4500 * 0.2 + 26000 * 0.25 + 20000 * 0.3 + (salary_sum - 1500 - 3500 - 3000 - 4500 - 26000 - 20000) * 0.35 else: return 1500 * 0.03 + 3000 * 0.1 + 4500 * 0.2 + 26000 * 0.25 + 20000 * 0.3 + 25000 * 0.35 + (salary_sum - 1500 - 3500 - 3000 - 4500 - 26000 - 20000- 25000) * 0.45 test =48016 print ('函数构建完成, 当月薪为%.1f元时, 需要缴纳税费%.2f元'%(test, tax(test))) #魔法函数,为什么不能用 # salary_sum = 10000 # tax = tax (salary_sum) # print ('工资为 '+ str (salary_sum), '税费为' + str(tax) ```
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
JDK12 Collectors.teeing 你真的需要了解一下
前言 在 Java 12 里面有个非常好用但在官方 JEP 没有公布的功能,因为它只是 Collector 中的一个小改动,它的作用是 merge 两个 collector 的结果,这句话显得很抽象,老规矩,我们先来看个图(这真是一个不和谐的图????): 管道改造经常会用这个小东西,通常我们叫它「三通」,它的主要作用就是将 downstream1 和 downstre...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
【图解经典算法题】如何用一行代码解决约瑟夫环问题
约瑟夫环问题算是很经典的题了,估计大家都听说过,然后我就在一次笔试中遇到了,下面我就用 3 种方法来详细讲解一下这道题,最后一种方法学了之后保证让你可以让你装逼。 问题描述:编号为 1-N 的 N 个士兵围坐在一起形成一个圆圈,从编号为 1 的士兵开始依次报数(1,2,3…这样依次报),数到 m 的 士兵会被杀死出列,之后的士兵再从 1 开始报数。直到最后剩下一士兵,求这个士兵的编号。 1、方...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
GitHub标星近1万:只需5秒音源,这个网络就能实时“克隆”你的声音
作者 | Google团队 译者 | 凯隐 编辑 | Jane 出品 | AI科技大本营(ID:rgznai100) 本文中,Google 团队提出了一种文本语音合成(text to speech)神经系统,能通过少量样本学习到多个不同说话者(speaker)的语音特征,并合成他们的讲话音频。此外,对于训练时网络没有接触过的说话者,也能在不重新训练的情况下,仅通过未知...
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下...
【管理系统课程设计】美少女手把手教你后台管理
【文章后台管理系统】URL设计与建模分析+项目源码+运行界面 栏目管理、文章列表、用户管理、角色管理、权限管理模块(文章最后附有源码) 1. 这是一个什么系统? 1.1 学习后台管理系统的原因 随着时代的变迁,现如今各大云服务平台横空出世,市面上有许多如学生信息系统、图书阅读系统、停车场管理系统等的管理系统,而本人家里就有人在用烟草销售系统,直接在网上完成挑选、购买与提交收货点,方便又快捷。 试想,若没有烟草销售系统,本人家人想要购买烟草,还要独自前往药...
4G EPS 第四代移动通信系统
目录 文章目录目录4G 与 LTE/EPCLTE/EPC 的架构E-UTRANE-UTRAN 协议栈eNodeBEPCMMES-GWP-GWHSSLTE/EPC 协议栈概览 4G 与 LTE/EPC 4G,即第四代移动通信系统,提供了 3G 不能满足的无线网络宽带化,主要提供数据(上网)业务。而 LTE(Long Term Evolution,长期演进技术)是电信领域用于手机及数据终端的高速无线通...
日均350000亿接入量,腾讯TubeMQ性能超过Kafka
整理 | 夕颜出品 | AI科技大本营(ID:rgznai100)【导读】近日,腾讯开源动作不断,相继开源了分布式消息中间件TubeMQ,基于最主流的 OpenJDK8开发的Tencent Kona JDK,分布式HTAP数据库 TBase,企业级容器平台TKEStack,以及高性能图计算框架Plato。短短一周之内,腾讯开源了五大重点项目。其中,TubeMQ是腾讯大数据平台部门应用的核心组件,...
8年经验面试官详解 Java 面试秘诀
作者 |胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。 Java程序员准备和投递简历的实...
相关热词 c# 输入ip c# 乱码 报表 c#选择结构应用基本算法 c# 收到udp包后回包 c#oracle 头文件 c# 序列化对象 自定义 c# tcp 心跳 c# ice连接服务端 c# md5 解密 c# 文字导航控件
立即提问