问题:让我们从 Kaggle 中获取 Titanic 数据集。我有包含“Pclass”、“Sex”和“Age”列的数据框。我需要在“年龄”列中用某个组的中位数填充 NaN。如果是 1st class 的女性,我想用 1st class 女性的中位数填充她的年龄,而不是整个 Age 列的中位数。
问题是如何在某个切片中进行这种更改?
我试过:
data['Age'][(data['Sex'] == 'female')&(data['Pclass'] == 1)&(data['Age'].isnull())].fillna(median)
Run Code Online (Sandbox Code Playgroud)
“中位数”是我的价值,但没有任何变化“就地=真”没有帮助。
非常感谢!
我有 Dataframe 可以简化为:
import pandas as pd
df = pd.DataFrame([{
'title': 'batman',
'text': 'man bat man bat',
'url': 'batman.com',
'label':1},
{'title': 'spiderman',
'text': 'spiderman man spider',
'url': 'spiderman.com',
'label':1},
{'title': 'doctor evil',
'text': 'a super evil doctor',
'url': 'evilempyre.com',
'label':0},])
Run Code Online (Sandbox Code Playgroud)
我想尝试不同的特征提取方法:TFIDF、word2vec、具有不同 ngram 设置的 Coutvectorizer 等。但我想尝试不同的组合:一个特征集将包含使用 TFIDF 转换的“文本”数据,以及使用Countvectoriser 和第二个将具有由 w2v 转换的文本数据,以及由 TFIDF 转换的“url”等。最后,当然,我想对不同的预处理策略进行比较并选择最好的一种。
以下是问题:
有没有办法使用 Pipeline 这样的标准 sklearn 工具来做这样的事情?
我的想法有常识吗?也许有一些好主意如何处理我所缺少的数据框中包含许多列的文本数据?
非常感谢!