min() 函数不适用于日期类型的 koalas.DataFrame 列
min() function doesn't work on koalas.DataFrame columns of date types
我创建了以下数据框:
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]:
Date1
Date2
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)
有谁知道这是为什么以及是否有解决它的优雅方法?
试试这个:
df.apply(min, axis=0)
输出[1]:
Date1 2021-11-01
Date2 2020-11-01
dtype: datetime64[ns]
这确实是代码中的一个错误,但从那时起 Koalas 与 pyspark 合并,pandas on spark API 就诞生了。更多信息 here.
使用spark 3.2.0及以上版本,需要更换
import databricks.koalas as ks
有
import pyspark.pandas as ps
并将 ks.DataFrame
替换为 ps.DataFrame
。这完全消除了问题。
我创建了以下数据框:
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]:
Date1 | Date2 | |
---|---|---|
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)
有谁知道这是为什么以及是否有解决它的优雅方法?
试试这个:
df.apply(min, axis=0)
输出[1]:
Date1 2021-11-01
Date2 2020-11-01
dtype: datetime64[ns]
这确实是代码中的一个错误,但从那时起 Koalas 与 pyspark 合并,pandas on spark API 就诞生了。更多信息 here.
使用spark 3.2.0及以上版本,需要更换
import databricks.koalas as ks
有
import pyspark.pandas as ps
并将 ks.DataFrame
替换为 ps.DataFrame
。这完全消除了问题。