小编She*_*ahn的帖子

PySpark - 使用 TimeStamp 数据类型解决 isnan 错误

我正在尝试创建一个函数来检查数据质量(nans/nulls 等)我在 PySpark DataFrame 上运行以下代码

df.select([f.count(f.when((f.isnan(c) | f.col(c).isNull()), c)).alias(c) for c in cols_check]).show()
Run Code Online (Sandbox Code Playgroud)

只要要检查的列是字符串/整数,我就没有问题。但是,当我检查数据类型为date或 的列时timestamp,我收到以下错误:

Date_Time由于数据类型不匹配,无法解析“isnan( )”:参数 1 需要(双精度或浮点)类型,但是“ Date_Time”是时间戳类型。;;\n'聚合...

列中存在明显的空值,我该如何解决这个问题?

null nan apache-spark apache-spark-sql pyspark

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

Pandas - GroupBy 2 列 - 无法重置索引

我有一个 DF 如下:

Date Bought | Fruit
2018-01       Apple
2018-02       Orange
2018-02       Orange
2018-02       Lemon
Run Code Online (Sandbox Code Playgroud)

我希望按“购买日期”和“水果”对数据进行分组并计算出现次数。

预期结果:

Date Bought | Fruit | Count
2018-01       Apple     1
2018-02       Orange    2
2018-02       Lemon     1
Run Code Online (Sandbox Code Playgroud)

我得到的:

Date Bought | Fruit | Count
2018-01       Apple     1
2018-02       Orange    2
              Lemon     1
Run Code Online (Sandbox Code Playgroud)

使用的代码:

Initial attempt:
df.groupby(['Date Bought','Fruit'])['Fruit'].agg('count')

#2
df.groupby(['Date Bought','Fruit'])['Fruit'].agg('count').reset_index()
ERROR: Cannot insert Fruit, already exists

#3
df.groupby(['Date Bought','Fruit'])['Fruit'].agg('count').reset_index(inplace=True)
ERROR: Type Error: Cannot reset_index inplace on a Series to create a DataFrame

Run Code Online (Sandbox Code Playgroud)

文档显示 groupby …

python python-3.x pandas pandas-groupby

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