pandas创建dataframe
一、介绍
在数据分析和处理中,pandas是一个非常强大和常用的Python库。它提供了丰富的数据结构和数据处理工具,其中最重要的就是DataFrame。DataFrame是一个二维的表格数据结构,类似于Excel或SQL中的表,可以方便地存储、处理和分析数据。
本文将详细介绍如何使用pandas创建DataFrame,并提供一些示例代码和运行结果。
二、pandas创建DataFrame的方法
pandas提供了多种方法来创建DataFrame,包括从二维数组、字典、CSV文件、Excel文件等多种数据来源。
1. 从二维数组创建DataFrame
可以使用pd.DataFrame()
函数从一个二维数组创建DataFrame。二维数组可以是一个嵌套的列表,每个列表代表一行数据。
下面是一个从二维数组创建DataFrame的示例代码:
import pandas as pd
data = [[1, 'Alice', 25],
[2, 'Bob', 30],
[3, 'Charlie', 35]]
df = pd.DataFrame(data, columns=['ID', 'Name', 'Age'])
print(df)
运行上述代码,输出如下:
ID Name Age
0 1 Alice 25
1 2 Bob 30
2 3 Charlie 35
2. 从字典创建DataFrame
可以使用pd.DataFrame()
函数从一个字典创建DataFrame。字典的key表示列名,value表示每一列的数据。
下面是一个从字典创建DataFrame的示例代码:
import pandas as pd
data = {'ID': [1, 2, 3],
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35]}
df = pd.DataFrame(data)
print(df)
运行上述代码,输出如下:
ID Name Age
0 1 Alice 25
1 2 Bob 30
2 3 Charlie 35
3. 从CSV文件创建DataFrame
使用pd.read_csv()
函数可以从CSV文件中读取数据并创建DataFrame。
下面是一个从CSV文件创建DataFrame的示例代码:
import pandas as pd
df = pd.read_csv('data.csv')
print(df)
其中,’data.csv’是CSV文件的路径和文件名。
4. 从Excel文件创建DataFrame
使用pd.read_excel()
函数可以从Excel文件中读取数据并创建DataFrame。
下面是一个从Excel文件创建DataFrame的示例代码:
import pandas as pd
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')
print(df)
其中,’data.xlsx’是Excel文件的路径和文件名,’Sheet1’是Excel工作表的名称。如果不指定sheet_name,默认读取第一个工作表。
三、DataFrame基本操作
创建了DataFrame后,可以进行多种操作,包括对数据的增、删、改、查等。
1. 查看DataFrame的基本信息
使用df.head()
方法可以查看DataFrame的前几行,默认为前5行;使用df.tail()
方法可以查看DataFrame的后几行,默认为后5行。
使用df.shape
可以查看DataFrame的形状,即行数和列数。
使用df.columns
可以查看DataFrame的列名。
使用df.info()
可以查看DataFrame的基本信息,包括每列的数据类型和非空值的数量。
下面是一些基本信息查看的示例代码:
import pandas as pd
data = {'ID': [1, 2, 3],
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35]}
df = pd.DataFrame(data)
print(df.head())
print(df.tail())
print(df.shape)
print(df.columns)
print(df.info())
运行上述代码,输出如下:
ID Name Age
0 1 Alice 25
1 2 Bob 30
2 3 Charlie 35
ID Name Age
0 1 Alice 25
1 2 Bob 30
2 3 Charlie 35
(3, 3)
Index(['ID', 'Name', 'Age'], dtype='object')
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 ID 3 non-null int64
1 Name 3 non-null object
2 Age 3 non-null int64
dtypes: int64(2), object(1)
memory usage: 200.0+ bytes
None
2. 索引和切片DataFrame
使用df['column_name']
可以索引DataFrame的一列数据。
使用df[['column_name1', 'column_name2']]
可以索引DataFrame的多列数据。
使用df.loc[index]
可以索引DataFrame的某一行数据,其中index为行的索引值。
使用df.loc[start_index:end_index]
可以切片DataFrame的多行数据,包括start_index和end_index。
使用df.iloc[row_index, col_index]
可以按位置索引DataFrame的数据,其中row_index为行的位置索引,col_index为列的位置索引。
下面是一些索引和切片的示例代码:
import pandas as pd
data = {'ID': [1, 2, 3],
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35]}
df = pd.DataFrame(data)
print(df['Name'])
print(df[['ID', 'Age']])
print(df.loc[0])
print(df.loc[0:1])
print(df.iloc[0, 1])
运行上述代码,输出如下:
0 Alice
1 Bob
2 Charlie
Name: Name, dtype: object
ID Age
0 1 25
1 2 30
2 3 35
ID 1
Name Alice
Age 25
Name: 0, dtype: object
ID Name Age
0 1 Alice 25
1 2 Bob 30
Alice
3. 增加和删除列
使用df['new_column_name'] = data
可以增加一列数据。
使用df.drop(columns=['column_name'])
可以删除一列数据。
下面是一些增加和删除列的示例代码:
import pandas as pd
data = {'ID': [1, 2, 3],
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35]}
df = pd.DataFrame(data)
df['Gender'] = ['Female', 'Male', 'Male']
print(df)
df = df.drop(columns=['Age'])
print(df)
运行上述代码,输出如下:
ID Name Age Gender
0 1 Alice 25 Female
1 2 Bob 30 Male
2 3 Charlie 35 Male
ID Name Gender
0 1 Alice Female
1 2 Bob Male
2 3 Charlie Male
4. 修改数据
使用df.loc[index, 'column_name'] = new_value
可以修改DataFrame中某个元素的值。
下面是一个修改数据的示例代码:
import pandas as pd
data = {'ID': [1, 2, 3],
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35]}
df = pd.DataFrame(data)
df.loc[0, 'Age'] = 26
print(df)
运行上述代码,输出如下:
ID Name Age
0 1 Alice 26
1 2 Bob 30
2 3 Charlie 35
5. 数据聚合与统计
使用df.describe()
可以计算DataFrame中数值列的统计指标,包括计数、平均值、标准差、最小值、25%分位数、中位数、75%分位数和最大值。
下面是一个数据聚合与统计的示例代码:
import pandas as pd
data = {'ID': [1, 2, 3],
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35]}
df = pd.DataFrame(data)
print(df.describe())
运行上述代码,输出如下:
ID Age
count 3.000000 3.000000
mean 2.000000 30.000000
std 1.000000 5.000000
min 1.000000 25.000000
25% 1.500000 27.500000
50% 2.000000 30.000000
75% 2.500000 32.500000
max 3.000000 35.000000
四、总结
本文介绍了使用pandas创建DataFrame的多种方法,包括从二维数组、字典、CSV文件、Excel文件等数据来源。同时,还介绍了DataFrame的基本操作,包括查看基本信息、索引和切片、增加和删除列、修改数据以及数据聚合与统计。
DataFrame是pandas库中最重要的数据结构之一,熟练掌握DataFrame的创建和操作方法,能够更高效地处理数据分析和处理任务,提高工作效率。