pandas 数据框中没有 NaN,当我查看 groupby 的每个组时,它们只有 Int64Index,而没有其余的非 groupby 列。我很困惑。
这是一个可重现的代码:
df = pd.DataFrame({
"a": np.random.rand(1000),
"b": np.random.rand(1000),
"c": np.random.rand(1000)
})
ranges = np.linspace(0, 1, 100)
df["a_bin"] = pd.cut(df.a, ranges)
df["b_bin"] = pd.cut(df.b, ranges)
print(df.groupby(["a_bin", "b_bin"]).c.mean())
Run Code Online (Sandbox Code Playgroud)
这是结果:
a_bin b_bin
(0.0, 0.0101] (0.0, 0.0101] NaN
(0.0101, 0.0202] NaN
(0.0202, 0.0303] NaN
(0.0303, 0.0404] NaN
(0.0404, 0.0505] NaN
..
(0.99, 1.0] (0.949, 0.96] NaN
(0.96, 0.97] NaN
(0.97, 0.98] NaN
(0.98, 0.99] NaN
(0.99, 1.0] NaN
Name: c, Length: 9801, dtype: float64
Run Code Online (Sandbox Code Playgroud)
我的熊猫版本是:1.0.1
我有一个数据框,其中一列是分类的。
我删除所有具有一个类别的行。
如何确保生成的数据框只有那些存在的类别,并且不会将已删除的类别保留在其索引中?
我正在使用 Amazon EC2,并且我的主服务器和开发服务器合二为一。我还有一个单独的工人实例。
我是新手,但我已经设法让 spark 在独立模式下工作。现在我正在尝试集群。master 和 worker 处于活动状态(我可以看到它们的 webUI 并且它们正在运行)。
我有 Spark 2.0,并且安装了 Python 3.5.2 附带的最新 Anaconda 4.1.1。在 worker 和 master 中,如果我去 pyspark 并执行 os.version_info,我将得到 3.5.2,我还正确设置了所有环境变量(如 stackoverflow 和 google 上的其他帖子中所见)(例如,PYSPARK_PYTHON) .
无论如何都没有 3.4 版本的 python。所以我想知道如何解决这个问题。
我通过运行这个命令得到错误:
rdd = sc.parallelize([1,2,3])
rdd.count()
Run Code Online (Sandbox Code Playgroud)
count() 方法发生错误:
16/08/13 18:44:31 ERROR Executor: Exception in task 1.0 in stage 2.0 (TID 17)
org.apache.spark.api.python.PythonException: Traceback (most recent call last):
File "/opt/spark/python/lib/pyspark.zip/pyspark/worker.py", line 123, in main
("%d.%d" % sys.version_info[:2], version))
Exception: Python in worker has different version 3.4 …Run Code Online (Sandbox Code Playgroud)