小编cor*_*234的帖子

pandas 使用方法链重命名列

我有一个数据框并做了一些特征工程,现在想更改列名称。如果我做新的作业,我知道如何更改它们,但我想通过方法链接来完成。我尝试了下面的(rename行),但它不起作用。我怎样才能写它才能起作用?

df = pd.DataFrame({'ID':[1,2,2,3,3,3], 'date': ['2021-10-12','2021-10-16','2021-10-15','2021-10-10','2021-10-19','2021-10-01'], 
                   'location':['up','up','down','up','up','down'], 
                   'code':[False, False, False, True, False, False]})

df = (df
     .assign(date = lambda x: pd.to_datetime(x.date))
     .assign(entries_per_ID = lambda x: x.groupby('ID').ID.transform('size'))
     .pivot_table(values=['entries_per_ID'], index=['ID','date','code'],
                   columns=['location'], aggfunc=np.max)
     .reset_index()
     #.rename(columns=lambda x: dict(zip(x.columns, ['_'.join(col).strip() if col[1]!='' else col[0] for col in x.columns.values])))
     )

Run Code Online (Sandbox Code Playgroud)

这在这里可行,但这不是我想要的写法。

df.columns = ['_'.join(col).strip() if col[1]!='' else col[0] for col in df.columns.values ]
Run Code Online (Sandbox Code Playgroud)

python multiple-columns dataframe pandas

8
推荐指数
1
解决办法
2990
查看次数

尝试使用变量路径名时出错:JSONPath 必须是字符串文字或查询参数

我试图JSON_EXTRACT在 Bigquery 中使用JSONPATH并不总是相同的。

所以我的 L.key 总是一个不同的关键字(我在 table2 中有)。不幸的是,concatwithJSON_EXTRACT对我不起作用。
如果我单独使用 concat 而不使用JSON_EXTRACT,它就可以工作。

这是我正在使用的代码:

SELECT A.*, SAFE_CAST(REPLACE(JSON_EXTRACT(A.some_json_obj, concat("$.", L.key)), '\"', '') AS NUMERIC) AS obp 
FROM table1 A, table2 L 
WHERE A.name = L.name
Run Code Online (Sandbox Code Playgroud)

google-bigquery

5
推荐指数
1
解决办法
3583
查看次数

sklearn precision_recall_curve 和阈值

我想知道 sklearn 如何决定在 precision_recall_curve 中使用多少个阈值。这里还有另一篇文章: How does sklearn select Threshold Steps in Precision Recall Curve? 。它提到了我找到这个例子的源代码

import numpy as np
from sklearn.metrics import precision_recall_curve
y_true = np.array([0, 0, 1, 1])
y_scores = np.array([0.1, 0.4, 0.35, 0.8])
precision, recall, thresholds = precision_recall_curve(y_true, y_scores)
Run Code Online (Sandbox Code Playgroud)

然后给出

>>>precision  
    array([0.66666667, 0.5       , 1.        , 1.        ])
>>> recall
    array([1. , 0.5, 0.5, 0. ])
>>> thresholds
    array([0.35, 0.4 , 0.8 ])
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释如何通过向我展示计算内容来获得这些召回率和精确度吗?

precision scikit-learn precision-recall

2
推荐指数
1
解决办法
4743
查看次数

pandas dataframe 拆分并获取列表的最后一个元素

我有一个 pandas 数据框,在一列中我有一个字符串,其中单词以“_”分隔,我想提取该字符串的最后一个元素(这是一个数字)并用它创建一个新列。我尝试了以下方法

df = pd.DataFrame({'strings':['some_string_25','a_different_one_13','and_a_last_one_40']})
df.assign(number = lambda x: x.strings.str.split('_')[0])
Run Code Online (Sandbox Code Playgroud)

但它在我的最后一篇专栏中给了我这个

number
some
string
25
Run Code Online (Sandbox Code Playgroud)

但我想得到这个

number
25
13
40
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

python split element list pandas

2
推荐指数
1
解决办法
4069
查看次数