小编Gil*_*tam的帖子

转换pandas数据帧中的分类数据

我有一个包含这种类型数据的数据框(列太多):

col1        int64
col2        int64
col3        category
col4        category
col5        category
Run Code Online (Sandbox Code Playgroud)

列似乎是这样的:

Name: col3, dtype: category
Categories (8, object): [B, C, E, G, H, N, S, W]
Run Code Online (Sandbox Code Playgroud)

我想将列中的所有值转换为整数,如下所示:

[1, 2, 3, 4, 5, 6, 7, 8]
Run Code Online (Sandbox Code Playgroud)

我通过这个解决了一个问题:

dataframe['c'] = pandas.Categorical.from_array(dataframe.col3).codes
Run Code Online (Sandbox Code Playgroud)

现在我的数据框中有两列 - 旧的'col3'和新的'c',需要删除旧列.

这是不好的做法.这是工作,但在我的数据框架中有很多列,我不想手动完成.

这个pythonic怎么这么巧妙?

python pandas

81
推荐指数
8
解决办法
13万
查看次数

从pandas.dataframe中删除低频值

如何从列中删除pandas.DataFrame很少发生的值,即频率较低?例:

In [4]: df[col_1].value_counts()

Out[4]: 0       189096
        1       110500
        2        77218
        3        61372
              ...
        2065         1
        2067         1
        1569         1
        dtype: int64
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是:如何删除像2065, 2067, 1569和其他人一样的价值观?我怎么能对包含.value_counts()这样的所有列执行此操作?

更新:关于'低'我的意思是像2065.此值出现col_11(一)次,我想删除这样的值.

python pandas

22
推荐指数
2
解决办法
8932
查看次数

错误:必须指定主资源(JAR或Python或R文件) - IPython notebook

我尝试在IPython Notebook中运行Apache Spark,遵循这个insruction(和评论中的所有建议) - 链接

但是当我通过这个命令运行IPython Notebook时:

ipython notebook --profile=pyspark
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Error: Must specify a primary resource (JAR or Python or R file)
Run Code Online (Sandbox Code Playgroud)

如果我在shell中运行pyspark,一切正常.这意味着我在连接Spark和IPython时遇到了一些麻烦.

顺便说一句,这是我的bash_profile:

export SPARK_HOME="$HOME/spark-1.4.0"
export PYSPARK_SUBMIT_ARGS='--conf "spark.mesos.coarse=true" pyspark-shell'
Run Code Online (Sandbox Code Playgroud)

这包含〜/ .ipython/profile_pyspark/startup/00-pyspark-setup.py:

# Configure the necessary Spark environment
import os
import sys

# Spark home
spark_home = os.environ.get("SPARK_HOME")

# If Spark V1.4.x is detected, then add ' pyspark-shell' to
# the end of the 'PYSPARK_SUBMIT_ARGS' environment variable
spark_release_file = spark_home + "/RELEASE"
if os.path.exists(spark_release_file) and "Spark 1.4" …
Run Code Online (Sandbox Code Playgroud)

ipython apache-spark pyspark

7
推荐指数
1
解决办法
5011
查看次数

计算pandas数据帧中的数据类型

我有pandas.DataFrame太多列.

我打电话:

In [2]: X.dtypes

Out[2]: VAR_0001     object
        VAR_0002      int64
                 ...   
        VAR_5000      int64
        VAR_5001      int64
Run Code Online (Sandbox Code Playgroud)

我无法理解我VAR_0002和之间的数据类型VAR_5000

它可以是int64,int8,float64等.我在这个博客中看到了原生类型,pandas.DataFrame但我认为这是错误的信息.我怎么能得到这个?

还有其他问题.当我在PC(Windows)上工作并调用它:

In [3]: X.dtypes[X.dtypes.map(lambda x: x=='bool')]
Run Code Online (Sandbox Code Playgroud)

我用这种类型的数据获得了几列.但是当我在Mac上使用此命令时,我什么也得不到.WAT?

python pandas

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

按行中的值选择熊猫数据框中的列

我有pandas.DataFrame太多的列。我想选择行中值等于0和的所有列1。所有列的类型是int64,我无法按object或其他类型选择它们。我怎样才能做到这一点?

python pandas

4
推荐指数
1
解决办法
3594
查看次数

fit_transform之后的数组大小不同

我的fit_transform功能有问题.有人可以解释为什么数组的大小不同?

In [5]: X.shape, test.shape

Out[5]: ((1000, 1932), (1000, 1932))

In [6]: from sklearn.feature_selection import VarianceThreshold
        sel = VarianceThreshold(threshold=(.8 * (1 - .8)))
        features = sel.fit_transform(X)
        features_test = sel.fit_transform(test)

In [7]: features.shape, features_test.shape

Out[7]:((1000, 1663), (1000, 1665))
Run Code Online (Sandbox Code Playgroud)

UPD:哪种转换可以帮助我获得相同大小的数组?

python scikit-learn

3
推荐指数
1
解决办法
1442
查看次数

Pandas 删除索引类型列

我想删除多个列pandas.DataFrame,但不能这样做。

In [10]: object_columns = X.select_dtypes(['object']).columns

In [10]: type(object_columns)

Out[10]: pandas.core.index.Index

In [11]: X = X.drop(object_columns, inplace=True, axis=1)

ValueError: labels ['VAR_0001' 'VAR_0005' 'VAR_0044' 'VAR_0073'] not contained in axis
Run Code Online (Sandbox Code Playgroud)

我更改了代码,但没有帮助:

In [12]: X = X.drop(X[object_columns], inplace=True, axis=1)

KeyError: "['VAR_0001' 'VAR_0005' 'VAR_0044' 'VAR_0073'] not in index"
Run Code Online (Sandbox Code Playgroud)

谁能解释我做错了什么?

python pandas

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

标签 统计

python ×6

pandas ×5

apache-spark ×1

ipython ×1

pyspark ×1

scikit-learn ×1