我想使用来自同一个/其他 Dataframe 的序列将函数 scipy.stats.percentileofscore() 应用于 Dataframe 的行。
import pandas as pd
from scipy import stats
import numpy as np
data = np.random.normal(50, 25, size=(3, 10)).astype(int)
df = pd.DataFrame(data=data)
df['SCORE'] = [20,40,60]
| 索引|第0页|一个|2个|三个|四个|五个|六个|七个|八个|九个|得分|
| - -|- -|- -|- -|- -|- -|- -|- -|- -|- -|- -|- -|
| 第0页|二十四人|三十九|-3个|三十二个|-26岁|六十一岁|八十八个|三十六人|三十二个|五十九个|20个|
| 一个|二十六人|六十三|十七岁|五十五人|七十九|三个|一百零八|七十三人|七十三人|九十二|四十个|
| 2个|三十八|六十七|八十二人|五十三个|四十个|六十一岁|三十九|三十二个|五十九个|七十八人|六十个|
将stats.percentileofscore()与静态“score = 50”一起应用非常简单
df['PCT OF SCORE'] = df.iloc[:,0:10].apply(stats.percentileofscore, score = 50, axis=1)
| 索引|第0页|一个|2个|三个|四个|五个|六个|七个|八个|九个|得分|分数百分比|
| - -|- -|- -|- -|- -|- -|- -|- -|- -|- -|- -|- -|- -|
| 第0页|二十四人|三十九|-3个|三十二个|-26岁|六十一岁|八十八个|三十六人|三十二个|五十九个|20个|70.0分|
| 一个|二十六人|六十三|十七岁|五十五人|七十九|三个|一百零八|七十三人|七十三人|九十二|四十个|30.0个|
| 2个|三十八|六十七|八十二人|五十三个|四十个|六十一岁|三十九|三十二个|五十九个|七十八人|六十个|40.0分|
但是,我想使用df ['SCORE']系列来设置“score”参数
df['PCT OF SCORE'] = df.iloc[:,0:20].apply(stats.percentileofscore, score = df['SCORE'], axis=1)
但这会引发ValueError
最后,我想保持相同的代码结构,只是修复“score”参数的语法。
谢谢你!
1条答案
按热度按时间crcmnpdw1#
stats.percentileofscore
的score
应该是类似数组的,您可以将Series转换为list此外,
score
之类的数组也是1.9.0的新特性您需要使用
pip3 install scipy --upgrade
或其他软件包管理工具将脚本升级到最新版本。