Pandas DataFrame 操作涉及编辑和修改现有的 DataFrame。一些常见的 DataFrame 操作包括
- 添加行/列
- 删除行/列
- 重命名行/列
向 Pandas DataFrame 添加新列
我们可以通过简单地声明一个新列表作为列来向现有的 Pandas DataFrame 添加新列。例如,
import pandas as pd
# define a dictionary containing student data
data = {'Name': ['John', 'Emma', 'Michael', 'Sophia'],
'Height': [5.5, 6.0, 5.8, 5.3],
'Qualification': ['BSc', 'BBA', 'MBA', 'BSc']}
# convert the dictionary into a DataFrame
df = pd.DataFrame(data)
# declare a new list
address = ['New York', 'London', 'Sydney', 'Toronto']
# assign the list as a column
df['Address'] = address
print(df)
输出
Name Height Qualification Address 0 John 5.5 BSc New York 1 Emma 6.0 BBA London 2 Michael 5.8 MBA Sydney 3 Sophia 5.3 BSc Toronto
在此示例中,我们将列表 address 赋给 DataFrame 的 Address
列。
向 Pandas DataFrame 添加新行
在 Pandas 中,添加行不如添加列那样直接。我们使用 .loc
属性向 Pandas DataFrame 添加新行。
例如,
import pandas as pd
# define a dictionary containing student data
data = {'Name': ['John', 'Emma', 'Michael', 'Sophia'],
'Height': [5.5, 6.0, 5.8, 5.3],
'Qualification': ['BSc', 'BBA', 'MBA', 'BSc']}
# convert the dictionary into a DataFrame
df = pd.DataFrame(data)
print("Original DataFrame:")
print(df)
print()
# add a new row
df.loc[len(df.index)] = ['Amy', 5.2, 'BIT']
print("Modified DataFrame:")
print(df)
输出
Original DataFrame: Name Height Qualification 0 John 5.5 BSc 1 Emma 6.0 BBA 2 Michael 5.8 MBA 3 Sophia 5.3 BSc Modified DataFrame: Name Height Qualification 0 John 5.5 BSc 1 Emma 6.0 BBA 2 Michael 5.8 MBA 3 Sophia 5.3 BSc 4 Amy 5.2 BIT
在此示例中,我们将行 ['Amy', 5.2, 'BIT']
添加到 df DataFrame。
这里,
len(df.index)
:返回 df 中的行数df.loc[...]
:访问方括号内具有索引值的行
要了解更多关于 .loc
的信息,请访问 Pandas 索引和切片。
从 Pandas DataFrame 中删除行/列
我们可以使用 drop()
从 DataFrame 中删除行和列。
示例:删除行
import pandas as pd
# create a sample DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Felipe', 'Rita'],
'Age': [25, 30, 35, 40, 22, 29],
'City': ['New York', 'London', 'Paris', 'Tokyo', 'Bogota', 'Banglore']}
df = pd.DataFrame(data)
# display the original DataFrame
print("Original DataFrame:")
print(df)
print()
# delete row with index 4
df.drop(4, axis=0, inplace=True)
# delete row with index 5
df.drop(index=5, inplace=True)
# delete rows with index 1 and 3
df.drop([1, 3], axis=0, inplace=True)
# display the modified DataFrame after deleting rows
print("Modified DataFrame:")
print(df)
输出
Original DataFrame: Name Age City 0 Alice 25 New York 1 Bob 30 London 2 Charlie 35 Paris 3 David 40 Tokyo Modified DataFrame: Name Age City 0 Alice 25 New York 2 Charlie 35 Paris
在此示例中,我们使用 labels=4
和 index=5
参数删除了单行。我们还使用 labels=[1,3]
参数删除了多行。
这里,
axis=0
:表示要删除行inplace=True
:表示要对原始 DataFrame 进行更改
示例:删除列
import pandas as pd
# create a sample DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Age': [25, 30, 35, 40],
'City': ['New York', 'London', 'Paris', 'Tokyo'],
'Height': ['165', '178', '185', '171'],
'Profession': ['Engineer', 'Entrepreneur', 'Unemployed', 'Actor'],
'Marital Status': ['Single', 'Married', 'Divorced', 'Engaged']}
df = pd.DataFrame(data)
# display the original DataFrame
print("Original DataFrame:")
print(df)
print()
# delete age column
df.drop('Age', axis=1, inplace=True)
# delete marital status column
df.drop(columns='Marital Status', inplace=True)
# delete height and profession columns
df.drop(['Height', 'Profession'], axis=1, inplace=True)
# display the modified DataFrame after deleting rows
print("Modified DataFrame:")
print(df)
输出
Original DataFrame: Name Age City Height Profession Marital Status 0 Alice 25 New York 165 Engineer Single 1 Bob 30 London 178 Entrepreneur Married 2 Charlie 35 Paris 185 Unemployed Divorced 3 David 40 Tokyo 171 Actor Engaged Modified DataFrame: Name City 0 Alice New York 1 Bob London 2 Charlie Paris 3 David Tokyo
在此示例中,我们使用 labels='Age'
和 columns='Marital Status'
参数删除了单列。我们还使用 labels=['Height', 'Profession']
参数删除了多列。
这里,
axis=1
:表示要删除列inplace=True
:表示要对原始 DataFrame 进行更改
重命名 DataFrame 中的标签
我们可以使用 rename()
函数重命名 Pandas DataFrame 中的列。
示例:重命名列
import pandas as pd
# create a sample DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Age': [25, 30, 35, 40],
'City': ['New York', 'London', 'Paris', 'Tokyo']}
df = pd.DataFrame(data)
# display the original DataFrame
print("Original DataFrame:")
print(df)
print()
# rename column 'Name' to 'First_Name'
df.rename(columns= {'Name': 'First_Name'}, inplace=True)
# rename columns 'Age' and 'City'
df.rename(mapper= {'Age': 'Number', 'City':'Address'}, axis=1, inplace=True)
# display the DataFrame after renaming column
print("Modified DataFrame:")
print(df)
输出
Original DataFrame: Name Age City 0 Alice 25 New York 1 Bob 30 London 2 Charlie 35 Paris 3 David 40 Tokyo Modified DataFrame: First_Name Number Address 0 Alice 25 New York 1 Bob 30 London 2 Charlie 35 Paris 3 David 40 Tokyo
在此示例中,我们使用 columns={'Name': 'First_Name'}
参数重命名了单列。我们还使用 mapper={'Age': 'Number', 'City':'Address'}
参数重命名了多列。
这里,
axis=1
:表示要重命名列inplace=True
:表示要对原始 DataFrame 进行更改
示例:重命名行标签
import pandas as pd
# create a sample DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Age': [25, 30, 35, 40],
'City': ['New York', 'London', 'Paris', 'Tokyo']}
df = pd.DataFrame(data)
# display the original DataFrame
print("Original DataFrame:")
print(df)
print()
# rename column one index label
df.rename(index={0: 7}, inplace=True)
# rename columns multiple index labels
df.rename(mapper={1: 10, 2: 100}, axis=0, inplace=True)
# display the DataFrame after renaming column
print("Modified DataFrame:")
print(df)
输出
Original DataFrame: Name Age City 0 Alice 25 New York 1 Bob 30 London 2 Charlie 35 Paris 3 David 40 Tokyo Modified DataFrame: Name Age City 7 Alice 25 New York 10 Bob 30 London 100 Charlie 35 Paris 3 David 40 Tokyo
在此示例中,我们使用 index={0: 7}
参数重命名了单行。我们还使用 mapper={1: 10, 2: 100}
参数重命名了多行。
这里,
axis=0
:表示要重命名行inplace=True
:表示要对原始 DataFrame 进行更改