python - 使用熊猫返回字符串列表
问题描述
我的函数根据几个条件过滤并返回两个熊猫系列的标签。尽管我的代码有效,但输出是类“pandas.core.indexes.base.Index”,而不是所需的类“set”。
我的代码如下:
def find_outliers(ks_values, p_values, ks_threshold, pvalue_threshold=0.05):
"""
Find outlying symbols using KS values and P-values
Parameters
----------
ks_values : Pandas Series
KS static for all the tickers
p_values : Pandas Series
P value for all the tickers
ks_threshold : float
The threshold for the KS statistic
pvalue_threshold : float
The threshold for the p-value
Returns
-------
outliers : set of str
Symbols that are outliers
"""
# Function Implementation
Symbols_ks = pd.Series(index=ks_values.index)
Symbols_pval = pd.Series(index=p_values.index)
Symbols_ks = list(ks_values[ks_values> ks_threshold].index.values)
Symbols_pval = list(p_values[p_values< pvalue_threshold].index.values)
outliers = set(Symbols_ks.extend(Symbols_pval))
return outliers
Series1 和 Series2 包括具有以下形式的对应值的标签:
ADBE 0.24268
ADI 0.19429
ADM 0.18128
ADP 0.17243
ADS 0.24109
ADSK 0.14591
AEE 0.18874
我的目标是返回一个标签列表,条件是超过(或不超过)两个阈值。输出必须是一组字符串。
如果有人觉得我的查询相当简单,我们深表歉意。非常感谢。
解决方案
这就是我正在运行的
def find_outliers(ks_values, p_values, ks_threshold, pvalue_threshold=0.05):
Symbols_ks = pd.Series(index=ks_values.index)
Symbols_pval = pd.Series(index=p_values.index)
Symbols_ks = list(ks_values[ks_values> ks_threshold].index.values)
Symbols_pval = list(p_values[p_values< pvalue_threshold].index.values)
Symbols_ks.extend(Symbols_pval)
return set(Symbols_ks)
测试(使用评论中的样本数据)
find_outliers(a,b,0.5)
输出:
{IBID}
推荐阅读
- signalr - SignalR 实时聊天,我应该在集线器还是 http api 中发送消息?
- python - 停止相机捕获线程但无法释放
- javascript - Javascript,如果函数的参数是函数怎么办?
- r - 如何修复在更改 ggplot2 3.2.0 后不再有效的箱线图代码
- python - 对列中的唯一字符串进行分组并对单独的列值执行功能
- mysql - MySQL 1064 错误解决语法错误的方法是什么?
- git - 通过变基编辑提交后如何将其应用到原始分支?
- python - Python - 指针和对象的 id
- reactjs - 使用道具作为状态的组件的替代方案
- php - 未定义的属性:Illuminate\Database\Eloquent\Relations\BelongsTo::$status。Laravel 5.5 关系