- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
希望有人能为我指明正确的方向,因为我是 Python 的新手。
我正在做一个小项目,以使用一些足球数据掌握 Python 中的数据分析。我有两个数据帧,一个包含玩家信息,另一个包含比赛信息 (match_df)。 match_df 有 22 列,其中包含比赛中每个球员的球员 ID。我想将 match_df 中的 player_ID 数据换成玩家的技能等级。我编写了一个函数来查找玩家和日期并返回评分 (find_player_skill)。我想将其应用于数据框中的每个相关列,但无法弄清楚如何使用 apply 函数,因为参数取决于数据框行。因此,我认为最简单的方法是在数据框的每个元素上使用 set_value,如下所示。
问题是我还没有设法让它执行(尽管我没有尝试连续运行几个小时)。我假设有一种方法可以在合理的时间内用不同的代码或增强的版本做同样的事情。我已经尝试在一个小样本(3 行)上快速运行代码,然后在 30 分钟左右的时间内没有完成 1000 行。
#change player ID's to skill data, currently runs very slowly
for i in range(len(match_df['match_date'])):
match_date = match_df['match_date'].iloc[i]
match_index = match_df.iloc[i].name
for pl_lab in ['h1','h2','h3','h4','h5','h6','h7','h8','h9','h10', 'h11',\
'a1','a2','a3','a4','a5','a6','a7','a8','a9','a10','a11']:
player_ID = match_df[pl_lab].iloc[i]
player_skill = find_player_skill(player_ID, match_date)
match_df.set_value(match_index,pl_lab,player_skill)
非常感谢任何建议。
编辑:同样值得一提的是,我考虑过调试代码并为此下载了 Pycharm,但我编写的一些早期代码似乎运行得非常慢(我最初在 iPython 中编写了所有代码)
最佳答案
假设 df 是 match 的数据帧,其中 0 到 2 列是玩家 ID,这是您可以执行的操作:
df = pd.DataFrame([['c' , 'a', 'b'], ['b', 'c', 'a']])
df
Out[70]:
0 1 2
0 c a b
1 b c a
df_player = pd.DataFrame([['a', 100], ['b', 230], ['c', 200]],columns=['ID', 'skill']).set_index('ID')
skill
ID
a 100
b 230
c 200
dic = df_player.to_dict()['skill']
df.apply(lambda x: [dic[n] if n in dic.keys() else n for n in x], axis=1)
Out[69]:
0 1 2
0 200 100 230
1 230 200 100
关于python - Dataframe 嵌套循环 - set_value 变量输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39833405/
我在我的 Controller 中加载了 form_validation 库,并且表单验证本身正在运行,但是当使用 set_value() 时,它没有填充表单字段。这是 Controller 中的代码
我的表单和单选按钮有点麻烦,输入文本我这样做: 并且当验证运行并且填写的输入字段得到返回的值时......我正在寻找的是一种使用单选按钮来做到这一点的方法 正如您所看到的,我的两个单选按钮的值都
我想使用appium在android应用程序的编辑框中设置一个值。我正在使用 python 脚本来自动化它。但我总是遇到一些错误。 我的 python 脚本是 import os import uni
我只想更改数据框中特定单元格中的值,然后我使用了 set_value。但是,每次我使用 set_value 时,它都会列出整个数据帧一次。由于数据帧尺寸较大(超过 1000 万行),该过程会浪费精
在Theano深度学习教程中,y是一个强制转换的共享变量: y = theano.shared(numpy.asarray(data, dtype=theano.config.floatX))
我正在开发一个使用 CI 验证规则的类别模块。当验证规则失败时,我希望表单具有与用户输入的值相同的值。验证规则失败后,我使用 set_value 函数加载表单中的值。但每次验证失败时,该值都会设置为空
我有一个代码 df.set_value(index, 'review_category', 'No_Reviews') 它给我警告如下: FutureWarning: set_value is dep
希望有人能为我指明正确的方向,因为我是 Python 的新手。 我正在做一个小项目,以使用一些足球数据掌握 Python 中的数据分析。我有两个数据帧,一个包含玩家信息,另一个包含比赛信息 (matc
我正在为我的项目使用 HMVC Codeigniter 模式。在我的项目中,我需要在输入字段类型为文件的表单上设置值。所以,我很感谢帮助我解决这个问题的他们。 我的 Controller 是test.
我检查并重新检查了我的代码,引用了 CI 文档和网络上的其他帖子,但我未能成功实现 set_value() 方法以在验证失败后重新填充表单字段。也许我遗漏了 CI 框架的一些非常基础的东西(我对它还很
我有以下 View ,但如何将 set_value 应用到它而不默认为 Please select? Type: Please Select ">Input ">Text
我使用 formigniter 为 CI 生成了一个表单。 http://formigniter.org/ 那位工作得很好。但是我想为名称字段设置一个默认值。 输入代码如下所示: Forename
在 Python 3.5 中遇到 Pandas 问题 我使用 Pandas 读取本地 csv,csv 包含纯数据,不涉及标题。然后我使用 分配列名 df= pd.read_csv(filePath,
我对 std::promise::set_value() 上的线程安全要求有点困惑。 standard says : Effects: Atomically stores the value r in
我有一个使用下拉列表的表单,我使用 codeigniter、表单助手和表单验证所以当我在我的表单中收到验证错误时,所有正确输入的字段都使用 codeigniter 的 set_value 填充,但这不
我正在尝试构建一个 pandas 系列以连接到数据框上。 import numpy as np import pandas as pd rawData = pd.read_csv(input, hea
我正在使用flask并在set_values处出错。我正在读取html的输入并将其传递给代码 @app.route('/home', methods=['POST']) def first():
当我运行以下代码时, #include int main() { std::promise p; p.set_value(1); return 0; } std::syste
我使用 codeigniter 框架来更新数据库中的记录,用户首先从表单的下拉列表中选择项目的 ID 此 ID 将添加到 URL,从数据库中获取该项目的所有相关信息。 我使用了一点 JavaScrip
我创建一个 promise 和 future 的对象: Promise p = promise(); Future f = p.get_future(); 我将promise传递给了后台线程,该线程最
我是一名优秀的程序员,十分优秀!