标签: data-analysis

什么是一个好的 csv 数据分析工具/框架

有没有好的工具可以分析一些 csv 格式的数据文件。有没有任何易于使用的开源工具来显示 csv 文件中的数据?(请不要提及excel...)。最重要的是一个简单的文件导入(或者可能是文件夹读出)机制。

csv data-analysis

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

巨大的稀疏数据帧到没有密集变换的 scipy 稀疏矩阵

拥有超过 100 万行和 30 列的数据,其中一列是 user_id(超过 1500 个不同的用户)。我想要对本专栏进行单热编码,并在 ML 算法(xgboost、FFM、scikit)中使用数据。但是由于巨大的行数和唯一的用户值矩阵将是 ~ 100 万 X 1500,因此需要以稀疏格式执行此操作(否则数据会杀死所有 RAM)。

对我来说,通过 Pandas DataFrame 处理数据的便捷方式,现在它也支持稀疏格式:

df = pd.get_dummies(df, columns=['user_id', 'type'], sparse=True)
Run Code Online (Sandbox Code Playgroud)

工作速度非常快,而且内存很小。但是为了使用 scikit 算法和 xgboost,有必要将数据帧转换为稀疏矩阵。

有没有办法做到这一点,而不是遍历列并将它们堆叠在一个 scipy 稀疏矩阵中?我尝试了 df.as_matrix() 和 df.values,但首先将所有数据转换为密集的 MemoryError :(

PS 同样为 xgboost 获取 DMatrix

更新:

所以我发布下一个解决方案(将感谢优化建议):

 def sparse_df_to_saprse_matrix (sparse_df):
    index_list = sparse_df.index.values.tolist()
    matrix_columns = []
    sparse_matrix = None

    for column in sparse_df.columns:
        sps_series = sparse_df[column]
        sps_series.index = pd.MultiIndex.from_product([index_list, [column]])
        curr_sps_column, rows, cols = sps_series.to_coo()
        if sparse_matrix != None:
            sparse_matrix = sparse.hstack([sparse_matrix, …
Run Code Online (Sandbox Code Playgroud)

machine-learning data-analysis scipy pandas scikit-learn

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

在给定列列表的情况下对 Pandas 数据框的值求和

给定一个数据框,如下所示:

x1 x2 x3 x4 x5 x6
1  2  3  4  5  6
3  4  5  6  3  3
1  2  3  6  1  2 
Run Code Online (Sandbox Code Playgroud)

我如何创建一个新的“sum”列,它只添加 x1 + x3 + x4

x1 x2 x3 x4 x5 x6
1  2  3  4  5  6
3  4  5  6  3  3
1  2  3  6  1  2 
Run Code Online (Sandbox Code Playgroud)

在我的实际数据框中,我有大约 100 列,所以有没有办法做到这一点而不必手动编写 x1 + x3 + ... + xn

例如,给定一个列表 [x1, x3, x4.. xn] df['sum'] = sum(df[list]) ?任何帮助表示赞赏,谢谢。

python data-analysis pandas

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

数据分析中的缺失值

我有一个数据集,其中包含两个级别 Male(M) 和 Female(F) 的变量 GENDER 有很多缺失值。我如何处理缺失值?处理这些缺失值的不同方法是什么。任何帮助,将不胜感激。

machine-learning data-analysis method-missing missing-data

5
推荐指数
2
解决办法
2670
查看次数

对数据框中列中的数据进行分类

我的数据框中有一列数字,我想将这些数字分类为例如高、低、排除。我如何做到这一点。我一无所知,我尝试查看剪切函数和类别数据类型。

python machine-learning data-analysis pandas

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

为什么我在 QDA 中名次不足

我正在研究来自 Kaggle ( https://www.kaggle.com/c/titanic/data )的泰坦尼克号泰坦尼克号数据集,我正在尝试将各种模型应用于该数据集。

在这样做之前,我已经对数据集进行了以下修改:

df.train <- dplyr::select(df.train,-PassengerId,-Name,-Ticket,-Cabin)
df.train$Survived <- factor(df.train$Survived)
df.train$Pclass <- factor(df.train$Pclass)
df.train$Parch <- factor(df.train$Parch)
df.train$SibSp <- factor(df.train$SibSp)
Run Code Online (Sandbox Code Playgroud)

我也设定了年龄,我们处于这样的情况

anyNA(df.train) == F

因此,当我进行逻辑回归和 LDA 时,一切正常(即使令人惊讶的是它们提供了完全相同的结果),但是当我尝试时:

qda.model <- qda(Survived~. , data = df.train)
Run Code Online (Sandbox Code Playgroud)

我得到:

qda.default(x, grouping, ...) 中的错误:groupe 0 n'est pas de rang plein

据我所知,这意味着我有一个等级不足。

一些在线研究将我带到这里:https : //stats.stackexchange.com/questions/35071/what-is-rank-deficiency-and-how-to-deal-with-it

但我真的不明白数据有什么问题,我有 8 个预测变量和 891 个观察值,没有一个预测变量似乎是其他变量的线性组合。

你能解释一下这个 QDA 有什么问题吗?

非常感谢!

r machine-learning data-analysis

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

替代 scipy.cluster.hierarchy.cut_tree()

我在 Python 3 中做了一个凝聚层次聚类实验,我发现scipy.cluster.hierarchy.cut_tree()没有为某些输入链接矩阵返回请求的聚类数。所以,现在我知道有在一个bug cut_tree()函数(如描述在这里)。

但是,我需要能够获得平面聚类,并k为我的数据点分配不同的标签。您知道k从任意输入链接矩阵中获得带有标签的平面聚类的算法Z吗?我的问题归结为:如何cut_tree()在没有错误的情况下从头开始计算什么?

您可以使用此数据集测试您的代码。

from scipy.cluster.hierarchy import linkage, is_valid_linkage
from scipy.spatial.distance import pdist

## Load dataset
X = np.load("dataset.npy")

## Hierarchical clustering
dists = pdist(X)
Z = linkage(dists, method='centroid', metric='euclidean')

print(is_valid_linkage(Z))

## Now let's say we want the flat cluster assignement with 10 clusters.
#  If cut_tree() was working we would do
from scipy.cluster.hierarchy import cut_tree
cut = cut_tree(Z, 10)
Run Code Online (Sandbox Code Playgroud)

旁注:另一种方法也许可以是使用 …

python numpy hierarchical-clustering data-analysis scipy

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

如何使用 Python Pandas 在特定切片中制作 DataFrame 切片和“fillna”?

问题:让我们从 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)

“中位数”是我的价值,但没有任何变化“就地=真”没有帮助。

非常感谢!

python data-analysis dataframe pandas

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

Matlab One Hot Encoding - 将带有分类的列转换为几列逻辑值

语境

我有大量带有分类的列,所有列都有不同的、不可排名的选择。为了让我的分析更容易,我想将它们中的每一个都转换为具有逻辑的多个列。例如:

1   GENRE
2   Pop
3   Classical
4   Jazz
Run Code Online (Sandbox Code Playgroud)

……会变成……

1   Pop Classical Jazz
2   1       0      0
3   0       1      0
4   0       0      1
Run Code Online (Sandbox Code Playgroud)

问题

我尝试过使用ind2vec,但这仅适用于数字或逻辑。我也遇到过这个,但不确定它是否适用于分类。在这种情况下使用什么函数才是正确的?

arrays statistics matlab data-analysis

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

Google Apps 脚本的数据分析库

有没有用于数据分析和矩阵运算的GAS库?像 Python numpy&pandas或 JavaScript numjs&之类的东西undescorejs。我想在GAS中做一些统计操作。

statistics data-analysis google-apps-script data-science

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