我有一个很大DF的10 millions行,我需要找到每列的唯一编号。
我写了下面的函数:(需要返回一个系列)
def count_unique_values(df):
return pd.Series(df.nunique())
Run Code Online (Sandbox Code Playgroud)
我得到这个输出:
Area 210
Item 436
Element 4
Year 53
Unit 2
Value 313640
dtype: int64
Run Code Online (Sandbox Code Playgroud)
预期结果应为值 313641。
当我做
df['Value'].unique()
Run Code Online (Sandbox Code Playgroud)
我确实得到了那个答案。不明白为什么我nunique()在那里得到的更少。
对于我试图解决的新 DBT 用例,我需要一些智慧。我对 DBT 很陌生,不确定什么是最有效的 DBT 方法。我们使用雪花作为 DWH。
我们有很多使用 DBT 管理的增量模型。最近,我们需要向所有模型添加一个新列。最有效的 DBT 方法是什么?我们应该覆盖增量宏脚本吗?(我为雪花找到了这个。)我认为最后的手段是将新列手动添加到每个模型。
我有一个包含数组值列的表(在 group by 和 array_agg 函数之后)
COLUMN_VALUE | other_columns...
-----------: | -------:
{0.45,0.45,0.97,0.99}| ..
{0.45,0.45,0.85,0.99}| ..
{0.45,0.45,0.77,0.99}| ..
{0.45,0.45,0.10,0.99}| ..
Run Code Online (Sandbox Code Playgroud)
如何获得最频繁的值?(本例中每行 0.45)
我的猜测再次是 unnest 和 groupby,但我正在尝试找到更强大、更快的东西。
我用来构建表的查询
COLUMN_VALUE | other_columns...
-----------: | -------:
{0.45,0.45,0.97,0.99}| ..
{0.45,0.45,0.85,0.99}| ..
{0.45,0.45,0.77,0.99}| ..
{0.45,0.45,0.10,0.99}| ..
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用此方法删除多个文件:
map(os.remove, glob.glob("*.pdf"))
Run Code Online (Sandbox Code Playgroud)
我收到带有 pdf 扩展名的文件列表,但这不会删除任何文件。
我的解决方案是用 包裹这张地图list()。
还有其他不需要使用列表或其他东西的解决方案吗?
dataframe ×1
dbt ×1
glob ×1
pandas ×1
postgresql ×1
python ×1
snowflake-cloud-data-platform ×1
sql ×1
unique ×1