Python中文
首页
教程
问答
标签
搜索
登录
注册
在来自另一个df的子集的中间值上填充df列
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有两个数据帧:一个表示样本块(df1),另一个表示时间序列中多个样本的性能值(df2)。我想通过使用字典切片df2并计算中值来填充df1。虽然我可以通过for循环强制执行它,但我想学习更合适的方法。我觉得df.apply()应该能够做到这一点,但我遇到了一个“'Series'对象是可变的,因此它们不能被散列”错误</p> <pre><code>df1=pd.DataFrame(columns=['qb','qb_median']) df1.qb=['qb1','qb2'] df1 Out[76]: qb qb_median 0 qb1 NaN 1 qb2 NaN df2=pd.DataFrame({'sample':['A','B','C','D','E','F'],'x':[1,2,3,4,5,6]}) df2 Out[78]: sample x 0 A 1 1 B 2 2 C 3 3 D 4 4 E 5 5 F 6 sets={'qb1':['A','B','C'],'qb2':['D','E','F']} </code></pre> <p>我希望填充df1,以便</p> <pre><code> qb qb_median 0 qb1 2 1 qb2 5 </code></pre> <p>我认为可能有效的是:</p> <pre><code>def get_med(q, lookup_df): return lookup_df.loc[lookup_df['sample'].isin(sets[q])]['x'].median() df1['qb_median']=df1.apply(lambda x: get_med(df1.qb, df2), axis=1) </code></pre> <p>我还尝试了以下方面的变化:</p> <pre><code>df1['qb_median']=df2.loc[df2['sample'].isin(sets[df1.qb_median])]['x'].median() </code></pre> <p>我觉得我就在那里,但就是不能让它工作。任何帮助都将不胜感激</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您可以尝试以下方法,希望对您有所帮助</p> <pre><code>df1.set_index('qb',inplace=True) for qb in df1.index.values: qb_median = df2[df2['sample'].isin(sets[qb])]['x'].median() df1['qb_median'][qb] = qb_median </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
5 回答
无法使用Django\u mssql\u后端迁移到外部hos
3 回答
无法使用Django&Python3.4连接到MySql
8 回答
无法使用Django+nginx上载媒体文件
7 回答
无法使用Django1.6导入名称模式
7 回答
无法使用Django1.7和mongodb登录管理站点
7 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
2 回答
无法使用Djangockedi验证CBV中的字段
6 回答
无法使用Djangocketditor上载图像(错误400)
9 回答
无法使用Djangocron进行函数调用
10 回答
无法使用Djangofiler djang上载文件
2 回答
无法使用Djangokronos
9 回答
无法使用Djangomssql provid
10 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
8 回答
无法使用Djangomssq迁移Django数据库
7 回答
无法使用Djangonox创建用户
8 回答
无法使用Djangopyodb从Django查询SQL Server
7 回答
无法使用Djangopython3ldap连接到ldap
7 回答
无法使用Djangoredis连接到redis
7 回答
无法使用Django中的FK创建新表
3 回答