Python Pandas - 修改 DataFrame



Pandas DataFrame 是一種二維資料結構,可用於以表格格式儲存資料,它由行和列組成。修改 Pandas DataFrame 是資料操作和預處理中的一項基本任務。常見的修改包括重新命名列或行標籤、為附加資料新增或插入新列、更新或替換現有列的內容以及刪除不需要的列。

在本教程中,我們將學習如何以不同的方式修改 Pandas DataFrame。

重新命名 DataFrame 的列或行標籤

Pandas 的 DataFrame.rename() 方法用於重新命名 DataFrame 的一個或多個列或行標籤。這在需要提高 DataFrame 資料的可讀性的情況下非常有用。

示例:重新命名 DataFrame 列標籤

以下示例使用 DataFrame.rename() 方法重新命名 DataFrame 的列名。

import pandas as pd

# Create a DataFrame
df = pd.DataFrame({'A': [1, 2, 3],'B': [4, 5, 6]})

# Display original DataFrame
print("Original DataFrame:")
print(df)

# Rename column 'A' to 'aa'
df = df.rename(columns={'A': 'aa'})

# Display modified DataFrame
print("Modified DataFrame:")
print(df)

以下是上述程式碼的輸出 -

Original DataFrame:
   A  B
0  1  4
1  2  5
2  3  6
Modified DataFrame:
   aa  B
0   1  4
1   2  5
2   3  6

示例:重新命名 DataFrame 行標籤

與上述示例類似,這也會使用 DataFrame.rename() 方法重新命名 DataFrame 的行標籤。

import pandas as pd

# Create a DataFrame
df = pd.DataFrame({'A': [1, 2, 3],'B': [4, 5, 6]}, index=['x', 'y', 'z'])

# Display original DataFrame
print("Original DataFrame:")
print(df)

# Rename the multiple row labels
df = df.rename(index={'x': 'r1', 'y':'r2', 'z':'r3'})

# Display modified DataFrame
print("Modified DataFrame:")
print(df)

以下是上述程式碼的輸出 -

Original DataFrame:
   A  B
x  1  4
y  2  5
z  3  6
Modified DataFrame:
    A  B
r1  1  4
r2  2  5
r3  3  6

新增或插入列

向現有 DataFrame 新增新列非常簡單。最簡單的方法是使用新列名直接為 DataFrame 分配值。此外,您可以使用 DataFrame.insert() 方法在指定位置插入新列。

示例:直接新增新列

以下示例演示如何直接向 DataFrame 新增新列。

import pandas as pd

# Create a DataFrame
df = pd.DataFrame({'A': [1, 2, 3],'B': [4, 5, 6]})

# Add a new column 'C' with values
df['C'] = [7, 8, 9]

# Display updated DataFrame
print("DataFrame after adding a new column 'C':")
print(df)

以下是上述程式碼的輸出 -

DataFrame after adding a new column 'C':
   A  B  C
0  1  4  7
1  2  5  8
2  3  6  9

示例:在特定位置插入列

此示例使用 DataFrame.insert() 方法在現有 DataFrame 的特定位置新增新列。

import pandas as pd

# Create a DataFrame
df = pd.DataFrame({'A': [1, 2, 3],'B': [4, 5, 6]})

# Insert a new column 'D' at position 1
df.insert(1, 'D', [10, 11, 12])

# Display updated DataFrame
print("DataFrame after inserting column 'D' at position 1:")
print(df)

以下是上述程式碼的輸出 -

DataFrame after inserting column 'D' at position 1:
   A   D  B
0  1  10  4
1  2  11  5
2  3  12  6

替換 DataFrame 的內容

替換 DataFrame 的內容可以透過多種方式完成,其中一種最簡單的方法是直接為 DataFrame 的特定部分分配新值。

示例:替換列的值

以下示例演示了用新資料替換特定列內容的最簡單方法。

import pandas as pd

# Create a DataFrame
df = pd.DataFrame({'A': [1, 2, 3],'B': [4, 5, 6]})

# Replace the contents of column 'A' with new values
df['A'] = [10, 20, 30]

# Display updated DataFrame
print("DataFrame after replacing column 'A':")
print(df)

以下是上述程式碼的輸出 -

DataFrame after replacing column 'A':
    A  B
0  10  4
1  20  5
2  30  6

示例:使用 replace() 方法替換內容

您還可以使用 DataFrame.replace() 方法更改列中的特定值。此示例演示了相同的內容。

import pandas as pd

# Create a DataFrame
df = pd.DataFrame({'A': [1, 2, 3],'B': [4, 5, 6]})

# Display the Input DataFrame 
print("Original DataFrame:", df, sep='\n')

# Replace the contents 
df.replace({'A': 1, 'B': 6}, 100, inplace=True)

# Display updated DataFrame
print("DataFrame after replacing column 'A':")
print(df)

以下是上述程式碼的輸出 -

Original DataFrame:
   A  B
0  1  4
1  2  5
2  3  6

DataFrame after replacing column 'A':
     A    B
0  100    4
1    2    5
2    3  100

刪除列

刪除 DataFrame 的單個或多個列可以使用 DataFrame.drop() 方法完成。

示例

以下是使用 DataFrame.drop() 方法從 Pandas DataFrame 中刪除多個列的示例。

import pandas as pd

# Create a DataFrame
df = pd.DataFrame({'A': [1, 2, 3],'B': [4, 5, 6],'C': [7, 8, 9]})

# Display the original DataFrame
print("Original DataFrame:", df, sep='\n')

# Delete columns 'A' and 'B'
df = df.drop(columns=['A', 'B'])

# Display updated DataFrame
print("DataFrame after deleting columns 'A' and 'B':")
print(df)

以下是上述程式碼的輸出 -

Original DataFrame:
   A  B  C
0  1  4  7
1  2  5  8
2  3  6  9
DataFrame after deleting columns 'A' and 'B':
   C
0  7
1  8
2  9
廣告