当我运行以下代码时:
s = pandas.Series(['c', 'a', 'b', 'a', 'b'])
print(s.value_counts())
Run Code Online (Sandbox Code Playgroud)
有时我得到这个:
a 2
b 2
c 1
dtype: int64
Run Code Online (Sandbox Code Playgroud)
有时我得到这个:
b 2
a 2
c 1
dtype: int64
Run Code Online (Sandbox Code Playgroud)
例如,为等效计数返回的索引顺序不相同.如果Series值是整数而不是字符串,我无法重现这一点.
为什么会发生这种情况,每次获得相同索引顺序的最有效方法是什么?
我希望它仍然按计数降序排序,但要按等效计数项的顺序保持一致.
我正在运行Python 3.7.0和pandas 0.23.4
我已经将一个文件加载到Zeppelin笔记本中的DataFrame中,如下所示:
val df = spark.read.format("com.databricks.spark.csv").load("some_file").toDF("c1", "c2", "c3")
Run Code Online (Sandbox Code Playgroud)
这个DataFrame有超过1000万行,我想开始只使用一部分行,所以我使用limit:
val df_small = df.limit(1000)
Run Code Online (Sandbox Code Playgroud)
但是,现在当我尝试在其中一列的字符串值上过滤DataFrame时,每次运行以下操作时都会得到不同的结果:
df_small.filter($"c1" LIKE "something").show()
Run Code Online (Sandbox Code Playgroud)
如何为运行的每个过滤器获取一个保持稳定的df子集?