专栏名称: 学姐带你玩AI
这里有人工智能前沿信息、算法技术交流、机器学习/深度学习经验分享、AI大赛解析、大厂大咖算法面试分享、人工智能论文技巧、AI环境工具库教程等……学姐带你玩转AI!
目录
相关文章推荐
蚂蚁摄影MaE  ·  会拍照和不会拍照,差别到底有多大? ·  2 天前  
图虫APP  ·  获奖公示 | ... ·  3 天前  
51好读  ›  专栏  ›  学姐带你玩AI

Pandas常用的31个操作(附代码演示)

学姐带你玩AI  · 公众号  ·  · 2024-09-18 18:09

正文

来源:投稿  作者:sunny
编辑:学姐

Pandas是Python最常用的数据处理库之一,本文介绍其最常用的31个基础操作。

首先,我们需要导入pandas库,并创建一个DataFrame。这里我们使用字典来创建一个简单的DataFrame:

import pandas as pd

# 创建一个字典,作为 DataFrame 的数据
data = {
    'Name': ['Alice''Bob''Charlie''David''Eva'],
    'Age': [2530354045],
    'City': ['New York''Los Angeles''Chicago''Houston''Phoenix'],
    'Salary': [700008000090000100000110000]
}

# 将字典转换为 DataFrame
df = pd.DataFrame(data)

# 显示 DataFrame
print("Initial DataFrame:")
print(df)

1、 查看数据的前几行

# 查看前 5 行数据
print("\n1. First 5 rows:")
print(df.head())

2、 查看数据的后几行

# 查看最后 5 行数据
print("\n2. Last 5 rows:")
print(df.tail())

3、 获取 DataFrame 的形状

# 获取行数和列数
print("\n3. DataFrame shape:")
print(df.shape)

4、 获取列名

# 获取所有列名
print("\n4. Column names:")
print(df.columns)

5、 获取数据类型

# 获取每列的数据类型
print("\n5. Data types of columns:")
print(df.dtypes)

6、 选择单列

# 选择 'Name' 列
print("\n6. 'Name' column:")
print(df['Name'])

7、 选择多列

# 选择 'Name' 和 'City' 列
print("\n7. 'Name' and 'City' columns:")
print(df[['Name''City']])

8、 选择行

# 根据行索引选择第 2 行数据
print("\n8. Row at index 1:")
print(df.iloc[1])

9、 选择特定的行和列

# 选择第 2 行和 'Name' 列
print("\n9. 'Name' column value at row index 1:")
print(df.loc[1'Name'])

10、 条件筛选

# 筛选年龄大于 30 的数据
print("\n10. Rows where 'Age' > 30:")
print(df[df['Age'] > 30])

11、 按列排序

# 按 'Age' 列升序排序
print("\n11. DataFrame sorted by 'Age':")
print(df.sort_values(by='Age'))

12、 按行排序

# 按 'Salary' 列降序排序
print("\n12. DataFrame sorted by 'Salary' (descending):")
print(df.sort_values(by='Salary', ascending=False))

13、 重置索引

# 重置 DataFrame 索引
print("\n13. DataFrame with reset index:")
print(df.reset_index(drop=True))

14、 设置索引

# 设置 'Name' 列为索引
df.set_index('Name', inplace=True)
print("\n14. DataFrame with 'Name' as index:")
print(df)

15、 删除列

# 删除 'City' 列
df.drop(columns='City', inplace=True)
print("\n15. DataFrame after dropping 'City' column:")
print(df)

16、 添加列

# 添加 'Experience' 列
df['Experience'] = [12345]
print("\n16. DataFrame after adding 'Experience' column:")
print(df)

17、 删除行

# 删除第 2 行
df.drop(index=1, inplace=True)
print("\n17. DataFrame after dropping row at index 1:")
print(df)

18、 填充缺失值

# 添加一些缺失值
df.loc[0'Salary'] = None
# 用 0 填充缺失值
df.fillna(0, inplace=True)
print("\n18. DataFrame after filling missing values with 0:")
print(df)

19、 删除缺失值

# 重新引入缺失值
df.loc[2'Salary'] = None
# 删除包含缺失值的行
df.dropna(inplace=True)
print("\n19. DataFrame after dropping rows with missing values:")
print(df)

20、 计算基本统计量

# 计算每列的统计量
print("\n20. Statistical summary of DataFrame:")
print(df.describe())

21、 计算列的均值

# 计算 'Salary' 列的均值
print("\n21. Mean of 'Salary':")
print(df['Salary'].mean())

22、 计算列的标准差

# 计算 'Salary' 列的标准差
print("\n22. Standard deviation of 'Salary':")
print(df['Salary'].std())

23、 分组统计

# 重新添加 'City' 列用于分组
df['City'] = ['New York''Houston''Phoenix''Los Angeles''Chicago']
# 按 'City' 列分组,并计算 'Salary' 的均值
print("\n23. Average 'Salary' by 'City':")
print(df.groupby('City')['Salary'].mean())

24、 合并 DataFrame

# 创建另一个 DataFrame
data2 = {
    'Name': ['Alice''Bob''Charlie'],
    'Department': ['HR''IT''Finance']
}
df2 = pd.DataFrame(data2)

# 合并两个 DataFrame
merged_df = pd.merge(df.reset_index(), df2, on='Name')
print("\n24. Merged DataFrame:")
print(merged_df)

25、 连接 DataFrame

# 创建另一个 DataFrame
data3 = {
    'Name': ['Frank''Grace'],
    'Age': [5055],
    'City': ['Dallas''Austin'],
    'Salary': [120000130000]
}
df3 = pd.DataFrame(data3)

# 纵向连接 DataFrame
concat_df = pd.concat([df, df3], ignore_index=True)
print("\n25. Concatenated DataFrame:")
print(concat_df)

26、 透视表

# 创建透视表
pivot_table = pd.pivot_table(df, values='Salary', index='City', aggfunc='mean')
print("\n26. Pivot table of 'Salary' by 'City':")
print(pivot_table)

27、 数据透视

# 将 'Salary' 列转为行数据
melted_df = pd.melt(df, id_vars=['Name'], value_vars=['Salary'])
print("\n27. Melted DataFrame:")
print(melted_df)

28、 应用函数

# 对 'Salary' 列应用一个函数
df['Salary_in_thousands'] = df['Salary'].apply(lambda x: x / 1000)
print("\n28. DataFrame after applying function to 'Salary':")
print(df)

29、 字符串操作

# 将 'City' 列中的所有城市名转换为大写
df['City'] = df['City'].str.upper()
print("\n30. DataFrame with 'City' in uppercase:")
print(df)

30、 去除重复值

# 去除重复的行(重新添加重复行进行测试)
df = df.append(df.iloc[0], ignore_index=True)
print("\n31. DataFrame with duplicate rows:")
print(df.drop_duplicates())

31、 筛选唯一值







请到「今天看啥」查看全文