我有一个数据框并做了一些特征工程,现在想更改列名称。如果我做新的作业,我知道如何更改它们,但我想通过方法链接来完成。我尝试了下面的(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) 我试图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) 我想知道 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)
有人可以向我解释如何通过向我展示计算内容来获得这些召回率和精确度吗?
我有一个 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)
我怎样才能做到这一点?