我想测量两个Conference
相关度量(AcceptanceRate
和FiveYrIF
)之间的相关性。我有以下两个数据帧(它们已经被相应地排序/排序):
df_if
:
Conference FiveYrIF
0 SIGMOD Conference 112.685585
1 KDD 103.674543
2 CHI 99.453096
3 SIGIR 68.967753
4 WWW 65.715631
5 SODA 60.151959
6 DAC 42.076365
7 ICCAD 39.906361
8 CIKM 33.232224
9 DATE 26.578906
10 INFOCOM 22.694122
11 Winter Simulation Conference 17.448830
12 SAC 10.646007
df_ar
:
我想用stats.kendalltau
方法比较这两个指标(FiveYrIF
和AcceptanceRates
),我以前也用过,但是使用的是年份(数字)的排名,而不是这里所示的会议排名(文本)。在
我尝试了以下方法:
from scipy.stats import kendalltau
kendalltau(df_if['Conference'].values, df_ar['Conference'].values)
但它返回以下错误:
TypeError: merge sort not available for item 0
我不太确定我做错了什么,我的理解是,我所比较的只是序数(有序的),而不是可比的数字。我们比较订单,不是吗?在
我尽量避免回到数据库,为每次会议设置某种数字ID,这样我就可以在可能的情况下执行此操作。在
显然,
kendalltau
不处理Pandas使用的对象数组。您可以通过在将其传递给kendalltau
之前将其转换为字符串数组来解决此问题。在例如,下面是一个数据帧:
^{pr2}$x
列中的值是字符串。Pandas将字符串数组表示为数据类型为object
的数组:kendalltau
不处理这样的数组:如果使用
df['x'].values.astype(str)
将数组转换为字符串数组,则可以使用:相关问题 更多 >
编程相关推荐