pandas常见操作

1.DataFrame修改index,columns

import numpy as np
import pandas as pd

df1 = pd.DataFrame(np.arange(9).reshape(3, 3), index=['sh', 'cs', 'bj'], columns=['a', 'b', 'c'])
# print(df1)
# 把行索引改成如下这样
df1.index = ['shanghai', 'changsha', 'beijing']
# print(df1)
# 改列索引
# print(df1.columns)  # 查看列索引
df1.columns = ['A', 'B', 'C']
# print(df1)

# 将某列设置为索引
df3 = pd.DataFrame({'A': range(4), 'B': [2, 4, 5, 6], 'C': list('abcd'), 'D': [3, 4, 10, 5]})
print(df3)
# inplace=True 表示直接在原df3数据上进行修改;如果为False表示不会在df3修改,而是返回一个新的数据
# drop=False原数据中保留设置索引列的数据
# df3.set_index('C', inplace=True, drop=False)
# print(df3)
# inplace=False没有修改df3 所以用变量接收返回值
# data = df3.set_index('C', inplace=False, drop=False)
# print(df3)
# print(data)
# 整行赋值
# print(df3.iloc[3])
df3.iloc[3] = 100
print(df3)

常见操作

import pandas as pd
import numpy as np

# 合并
# 数据合并--concat() 拼接
data = {
    'Date': ['2023-09-01', '2023-09-02', '2023-09-03'],
    'Steps': [8000, 9000, 7500]  # 步数
}
df1 = pd.DataFrame(data)
# print(df1)
# 添加新的一天的步数数据
new_data = {'Date': '2023-09-04pandas分组聚合常见操作', 'Steps': 8500}
df2 = pd.DataFrame([new_data])
# print(df2)
# ignore_index=True 忽略原来的索引
df = pd.concat([df1, df2], ignore_index=True)
# print(df)
# 增加一列  直接赋值的方式
df['cost'] = [30, 40, 35, 45]
# print(df)

# 数据合并--merge() 基于对列的合并
# 创建客户信息数据表
user_data = {
    'CustomerID': [1, 2, 3, 4, 5],
    'Name': ['Rose', 'Bob', 'Jack', 'David', 'Lucy'],
    'Email': ['rose@163.com', 'bob@163.com', 'jack@163.com', 'david@163.com', 'lucy@163.com']
}
df3 = pd.DataFrame(user_data)
# print(df3)

# 创建购买历史数据表
buy_data = {
    'CustomerID': [1, 2, 1, 3, 4, 3, 6],
    'OrderID': [101, 102, 103, 104, 105, 106, 107],
    'Product': ['A', 'B', 'C', 'D', 'E', 'A', 'B'],
    'Quantity': [2, 1, 3, 2, 4, 1, 2]
}
df4 = pd.DataFrame(buy_data)
# print(df4)
# on 指连接字段  how表示连接方式 how='inner'求交集
merge_df = pd.merge(df3, df4, on='CustomerID', how='inner')
# print(merge_df)
# how ='outer'求并集
merge_df = pd.merge(df3, df4, on='CustomerID', how='outer')
# print(merge_df)
# 以左表为基准去进行连接,两表字段名不一致时用,用left_on和right_on
merge_df = pd.merge(df3,df4,on='CustomerID',how='left')
# print(merge_df)
# 以右表为基准去进行连接
merge_df = pd.merge(df3,df4,on='CustomerID',how='right')
# print(merge_df)

# 数据合并--join() 基于索引进行合并
df3 = pd.DataFrame({'A': ['A0', 'A1', 'A2'],
                    'B': ['B0', 'B1', 'B2']},
                   index=['K0', 'K1', 'K2'])
# print(df3)

df4 = pd.DataFrame({'C': ['C0', 'C2', 'C3'],
                    'D': ['D0', 'D2', 'D3']},
                   index=['K0', 'K2', 'K3'])
# print(df4)
# print(df3.join(df4, how='left'))   # 以左表为基准表进行连接
# print(df3.join(df4, how='right'))   # 以右表为基准表进行连接
# print(df3.join(df4,how='inner'))   # 求两表的交集
# print(df3.join(df4,how='outer'))   # 求两表的并集

# 删除
df = pd.DataFrame(np.random.rand(16).reshape(4, 4) * 100, columns=['a', 'b', 'c', 'd'])
print(df)
# del 直接在原df上进行删除
# del df['a']
# print(df)

# drop()
# 删除时 axis=0 表示按行删除 axis=1 表示按列删除 默认axis=0按行删除
# print(df.drop(0))
# print(df.drop('a', axis=1))

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容