pandas 中的 stack() 函式用於將 DataFrame 的列索引旋轉為行索引,從而天生一個新的層級索引的 Series 或 DataFrame。它的作用是將寬格局的資料轉換為長格局,利便進行分析和處理。stack() 函式的語法如下:DataFrame.stack(level=-1, dropna=True)引數說明:level:可選引數,指定要旋轉的列級別。預設為 -1,表示旋轉所有列級別。dropna:可選引數,指定是否刪除旋轉後結果中的空值。預設為 True,表示刪除。下面是幾個使用示例:1. 對於簡樸的 DataFrame,使用 stack() 函式將列索引旋轉為行索引:import pandas as pddata = {"Name": ["Alice", "Bob"],"Math": [80, 90],"English": [85, 95]}df = pd.DataFrame(data)result = df.stack()print(result)輸出: Name Alice Math 80 English 851 Name Bob Math 90 English 95dtype: object結果中,列索引被旋轉為了行索引,並天生了一個層級索引的 Series。2. 對於多級索引的 DataFrame,可以指定要旋轉的列級別:import pandas as pddata = { ("Alice", "Math"): [80, 90], ("Alice", "English"): [85, 95], ("Bob", "Math"): [75, 85], ("Bob", "English"): [80, 90]}df = pd.DataFrame(data)print(df)print()result = df.stack(level=)print(result)輸出: Alice Bob Math English Math English80857580190958590 English Math Alice 8580 Bob 80751 Alice 9590 Bob 9085結果中,第一級索引為原先的行索引,第二級索引為原先的列索引,天生了一個層級索引的 DataFrame。3. 刪除空值:import pandas as pdimport numpy as npdata = {"Name": ["Alice", "Bob"],"Math": [80, np.nan],"English": [85, 95]}df = pd.DataFrame(data)print(df)print()result = df.stack(dropna=True)print(result)輸出: Name Math English Alice 80.0851 Bob NaN 95 Name Alice Math 80.0 English 851 Name Bob English 95dtype: object結果中刪除了空值。使用stack方法的樞紐之一是將哪些列放在索引中。前面的例子中,我們將所有列都轉換成了索引。但如果 Name 列不但願被轉換成索引,可以用使用下面的方法。import pandas as pddata = {"Name": ["Alice", "Bob"],"Gender": ["f", "m"],"Math": [80, 90],}df = pd.DataFrame(data)result = df.set_index("Name").stack()print(result)輸出:Name Alice Gender f Math 80Bob Gender m Math 90dtype: object也就是說,我們可以首先使用 set_index 方法,將所有不需要重塑的列放在索引中,然後使用 stack 方法。這些示例展示了 stack() 函式的幾種用法,你可以根據詳細的資料結構和需求選擇合適的引數配置來進行資料旋轉操縱。

pandas 中的 stack() 函式用於將 DataFrame 的列索引旋轉為行索引,從而天生一個新的層級索引的 Series 或 DataFrame。它的作用是將寬格局的資料轉換為長格局,利便進行分析和處理。stack() 函式的語法如下:DataFrame.stack(level=-1, dropna=True)引數說明:level:可選引數,指定要旋轉的列級別。預設為 -1,表示旋轉所有列級別。dropna:可選引數,指定是否刪除旋轉後結果中的空值。預設為 True,表示刪除。下面是幾個使用示例:1. 對於簡樸的 DataFrame,使用 stack() 函式將列索引旋轉為行索引:import pandas as pddata = {"Name": ["Alice", "Bob"],"Math": [80, 90],"English": [85, 95]}df = pd.DataFrame(data)result = df.stack()print(result)輸出: Name Alice Math 80 English 851 Name Bob Math 90 English 95dtype: object結果中,列索引被旋轉為了行索引,並天生了一個層級索引的 Series。2. 對於多級索引的 DataFrame,可以指定要旋轉的列級別:import pandas as pddata = { ("Alice", "Math"): [80, 90], ("Alice", "English"): [85, 95], ("Bob", "Math"): [75, 85], ("Bob", "English"): [80, 90]}df = pd.DataFrame(data)print(df)print()result = df.stack(level=)print(result)輸出: Alice Bob Math English Math English80857580190958590 English Math Alice 8580 Bob 80751 Alice 9590 Bob 9085結果中,第一級索引為原先的行索引,第二級索引為原先的列索引,天生了一個層級索引的 DataFrame。3. 刪除空值:import pandas as pdimport numpy as npdata = {"Name": ["Alice", "Bob"],"Math": [80, np.nan],"English": [85, 95]}df = pd.DataFrame(data)print(df)print()result = df.stack(dropna=True)print(result)輸出: Name Math English Alice 80.0851 Bob NaN 95 Name Alice Math 80.0 English 851 Name Bob English 95dtype: object結果中刪除了空值。使用stack方法的樞紐之一是將哪些列放在索引中。前面的例子中,我們將所有列都轉換成了索引。但如果 Name 列不但願被轉換成索引,可以用使用下面的方法。import pandas as pddata = {"Name": ["Alice", "Bob"],"Gender": ["f", "m"],"Math": [80, 90],}df = pd.DataFrame(data)result = df.set_index("Name").stack()print(result)輸出:Name Alice Gender f Math 80Bob Gender m Math 90dtype: object也就是說,我們可以首先使用 set_index 方法,將所有不需要重塑的列放在索引中,然後使用 stack 方法。這些示例展示了 stack() 函式的幾種用法,你可以根據詳細的資料結構和需求選擇合適的引數配置來進行資料旋轉操縱。

pandas 中的 stack() 函式用於將 DataFrame 的列索引旋轉為行索引,從而天生一個新的層級索引的 Series 或 DataFrame。它的作用是將寬格局的資料轉換為長格局,利便進行分析和處理。stack() 函式的語法如下:DataFrame.stack(level=-1, dropna=True)引數說明:level:可選引數,指定要旋轉的列級別。預設為 -1,表示旋轉所有列級別。dropna:可選引數,指定是否刪除旋轉後結果中的空值。預設為 True,表示刪除。下面是幾個使用示例:1. 對於簡樸的 DataFrame,使用 stack() 函式將列索引旋轉為行索引:import pandas as pddata = {"Name": ["Alice", "Bob"],"Math": [80, 90],"English": [85, 95]}df = pd.DataFrame(data)result = df.stack()print(result)輸出: Name Alice Math 80 English 851 Name Bob Math 90 English 95dtype: object結果中,列索引被旋轉為了行索引,並天生了一個層級索引的 Series。2. 對於多級索引的 DataFrame,可以指定要旋轉的列級別:import pandas as pddata = { ("Alice", "Math"): [80, 90], ("Alice", "English"): [85, 95], ("Bob", "Math"): [75, 85], ("Bob", "English"): [80, 90]}df = pd.DataFrame(data)print(df)print()result = df.stack(level=)print(result)輸出: Alice Bob Math English Math English80857580190958590 English Math Alice 8580 Bob 80751 Alice 9590 Bob 9085結果中,第一級索引為原先的行索引,第二級索引為原先的列索引,天生了一個層級索引的 DataFrame。3. 刪除空值:import pandas as pdimport numpy as npdata = {"Name": ["Alice", "Bob"],"Math": [80, np.nan],"English": [85, 95]}df = pd.DataFrame(data)print(df)print()result = df.stack(dropna=True)print(result)輸出: Name Math English Alice 80.0851 Bob NaN 95 Name Alice Math 80.0 English 851 Name Bob English 95dtype: object結果中刪除了空值。使用stack方法的樞紐之一是將哪些列放在索引中。前面的例子中,我們將所有列都轉換成了索引。但如果 Name 列不但願被轉換成索引,可以用使用下面的方法。import pandas as pddata = {"Name": ["Alice", "Bob"],"Gender": ["f", "m"],"Math": [80, 90],}df = pd.DataFrame(data)result = df.set_index("Name").stack()print(result)輸出:Name Alice Gender f Math 80Bob Gender m Math 90dtype: object也就是說,我們可以首先使用 set_index 方法,將所有不需要重塑的列放在索引中,然後使用 stack 方法。這些示例展示了 stack() 函式的幾種用法,你可以根據詳細的資料結構和需求選擇合適的引數配置來進行資料旋轉操縱。

pandas 中的 stack() 函式用於將 DataFrame 的列索引旋轉為行索引,從而天生一個新的層級索引的 Series 或 DataFrame。它的作用是將寬格局的資料轉換為長格局,利便進行分析和處理。stack() 函式的語法如下:DataFrame.stack(level=-1, dropna=True)引數說明:level:可選引數,指定要旋轉的列級別。預設為 -1,表示旋轉所有列級別。dropna:可選引數,指定是否刪除旋轉後結果中的空值。預設為 True,表示刪除。下面是幾個使用示例:1. 對於簡樸的 DataFrame,使用 stack() 函式將列索引旋轉為行索引:import pandas as pddata = {"Name": ["Alice", "Bob"],"Math": [80, 90],"English": [85, 95]}df = pd.DataFrame(data)result = df.stack()print(result)輸出: Name Alice Math 80 English 851 Name Bob Math 90 English 95dtype: object結果中,列索引被旋轉為了行索引,並天生了一個層級索引的 Series。2. 對於多級索引的 DataFrame,可以指定要旋轉的列級別:import pandas as pddata = { ("Alice", "Math"): [80, 90], ("Alice", "English"): [85, 95], ("Bob", "Math"): [75, 85], ("Bob", "English"): [80, 90]}df = pd.DataFrame(data)print(df)print()result = df.stack(level=)print(result)輸出: Alice Bob Math English Math English80857580190958590 English Math Alice 8580 Bob 80751 Alice 9590 Bob 9085結果中,第一級索引為原先的行索引,第二級索引為原先的列索引,天生了一個層級索引的 DataFrame。3. 刪除空值:import pandas as pdimport numpy as npdata = {"Name": ["Alice", "Bob"],"Math": [80, np.nan],"English": [85, 95]}df = pd.DataFrame(data)print(df)print()result = df.stack(dropna=True)print(result)輸出: Name Math English Alice 80.0851 Bob NaN 95 Name Alice Math 80.0 English 851 Name Bob English 95dtype: object結果中刪除了空值。使用stack方法的樞紐之一是將哪些列放在索引中。前面的例子中,我們將所有列都轉換成了索引。但如果 Name 列不但願被轉換成索引,可以用使用下面的方法。import pandas as pddata = {"Name": ["Alice", "Bob"],"Gender": ["f", "m"],"Math": [80, 90],}df = pd.DataFrame(data)result = df.set_index("Name").stack()print(result)輸出:Name Alice Gender f Math 80Bob Gender m Math 90dtype: object也就是說,我們可以首先使用 set_index 方法,將所有不需要重塑的列放在索引中,然後使用 stack 方法。這些示例展示了 stack() 函式的幾種用法,你可以根據詳細的資料結構和需求選擇合適的引數配置來進行資料旋轉操縱。

pandas 中的 stack() 函式用於將 DataFrame 的列索引旋轉為行索引,從而天生一個新的層級索引的 Series 或 DataFrame。它的作用是將寬格局的資料轉換為長格局,利便進行分析和處理。stack() 函式的語法如下:DataFrame.stack(level=-1, dropna=True)引數說明:level:可選引數,指定要旋轉的列級別。預設為 -1,表示旋轉所有列級別。dropna:可選引數,指定是否刪除旋轉後結果中的空值。預設為 True,表示刪除。下面是幾個使用示例:1. 對於簡樸的 DataFrame,使用 stack() 函式將列索引旋轉為行索引:import pandas as pddata = {"Name": ["Alice", "Bob"],"Math": [80, 90],"English": [85, 95]}df = pd.DataFrame(data)result = df.stack()print(result)輸出: Name Alice Math 80 English 851 Name Bob Math 90 English 95dtype: object結果中,列索引被旋轉為了行索引,並天生了一個層級索引的 Series。2. 對於多級索引的 DataFrame,可以指定要旋轉的列級別:import pandas as pddata = { ("Alice", "Math"): [80, 90], ("Alice", "English"): [85, 95], ("Bob", "Math"): [75, 85], ("Bob", "English"): [80, 90]}df = pd.DataFrame(data)print(df)print()result = df.stack(level=)print(result)輸出: Alice Bob Math English Math English80857580190958590 English Math Alice 8580 Bob 80751 Alice 9590 Bob 9085結果中,第一級索引為原先的行索引,第二級索引為原先的列索引,天生了一個層級索引的 DataFrame。3. 刪除空值:import pandas as pdimport numpy as npdata = {"Name": ["Alice", "Bob"],"Math": [80, np.nan],"English": [85, 95]}df = pd.DataFrame(data)print(df)print()result = df.stack(dropna=True)print(result)輸出: Name Math English Alice 80.0851 Bob NaN 95 Name Alice Math 80.0 English 851 Name Bob English 95dtype: object結果中刪除了空值。使用stack方法的樞紐之一是將哪些列放在索引中。前面的例子中,我們將所有列都轉換成了索引。但如果 Name 列不但願被轉換成索引,可以用使用下面的方法。import pandas as pddata = {"Name": ["Alice", "Bob"],"Gender": ["f", "m"],"Math": [80, 90],}df = pd.DataFrame(data)result = df.set_index("Name").stack()print(result)輸出:Name Alice Gender f Math 80Bob Gender m Math 90dtype: object也就是說,我們可以首先使用 set_index 方法,將所有不需要重塑的列放在索引中,然後使用 stack 方法。這些示例展示了 stack() 函式的幾種用法,你可以根據詳細的資料結構和需求選擇合適的引數配置來進行資料旋轉操縱。
