1

我创建了以下数据框:

import pandas as pd
import databricks.koalas as ks
df = ks.DataFrame(
    {'Date1': pd.date_range('20211101', '20211110', freq='1D'), 
     'Date2': pd.date_range('20201101', '20201110', freq='1D')})
df

输出[0]:

日期1 日期2
0 2021-11-01 2020-11-01
1 2021-11-02 2020-11-02
2 2021-11-03 2020-11-03
3 2021-11-04 2020-11-04
4 2021-11-05 2020-11-05
5 2021-11-06 2020-11-06
6 2021-11-07 2020-11-07
7 2021-11-08 2020-11-08
8 2021-11-09 2020-11-09
9 2021-11-10 2020-11-10

当试图获得最小值时,Date1我得到了正确的结果:

df.Date1.min()

输出[1]:

Timestamp('2021-11-01 00:00:00')

此外,当尝试获取每行的最小值时,会返回正确的结果:

df.min(axis=1)

输出[2]:

0   2020-11-01
1   2020-11-02
2   2020-11-03
3   2020-11-04
4   2020-11-05
5   2020-11-06
6   2020-11-07
7   2020-11-08
8   2020-11-09
9   2020-11-10
dtype: datetime64[ns]

但是,在列上使用相同的函数会失败:

df.min(axis=0)

输出[3]:

Series([], dtype: float64)

有谁知道这是为什么以及是否有一种优雅的方法?

4

2 回答 2

2

尝试这个:

df.apply(min, axis=0)

输出[1]:

Date1   2021-11-01
Date2   2020-11-01
dtype: datetime64[ns]
于 2021-11-29T19:34:14.240 回答
0

这确实是代码中的一个错误,但从那时起 Koalas 与 pyspark 合并,pandas on spark API 诞生了。更多信息在这里

使用spark 3.2.0及以上,需要更换

import databricks.koalas as ks

import pyspark.pandas as ps

并替换ks.DataFrameps.DataFrame. 这完全消除了这个问题。

于 2022-01-25T16:19:23.753 回答