pandas其他不常用函数(第十六节课内容总结)

发布于:2025-08-07 ⋅ 阅读:(31) ⋅ 点赞:(0)

DataFrame.from_clipboard() 从剪贴板读取数据。

import pandas as pd

# 从剪贴板读取数据
df = pd.read_clipboard()

print(df)

DataFrame.to_clipboard() 将 DataFrame 复制到剪贴板。

import pandas as pd

# 创建一个简单的 DataFrame
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'Los Angeles', 'Chicago']
}

df = pd.DataFrame(data)

# 将 DataFrame 内容复制到剪贴板
df.to_clipboard(index=False)  # 设置 index=False 不复制索引

print("DataFrame 已复制到剪贴板,可以粘贴到其他地方查看。")

DataFrame. pd.cut(x, bins) 将数值数据分段。

import pandas as pd

# 创建一个简单的数据序列
data = [1, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50]

# 定义区间
bins = [0, 10, 20, 30, 40, 50]

# 使用 pd.cut 将数据划分到指定的区间
categories = pd.cut(data, bins)

# 查看结果
print(categories)

DataFrame. sample() 随机抽样 DataFrame 中的行。

import pandas as pd

# 创建一个简单的 DataFrame
data = {
    'A': [1, 2, 3, 4, 5],
    'B': ['a', 'b', 'c', 'd', 'e']
}
df = pd.DataFrame(data)

# 使用 sample() 方法随机抽取 2 行
sampled_df = df.sample(n=2)

print("原始 DataFrame:")
print(df)
print("\n随机抽取的 DataFrame:")
print(sampled_df)

DataFrame.rank() 对数据进行排名。

import pandas as pd

# 创建一个简单的数据框
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
        'Score': [85, 92, 85, 78, 92]}
df = pd.DataFrame(data)

# 打印原始数据框
print("原始数据框:")
print(df)

# 使用 rank() 方法对 'Score' 列进行排名
df['Rank'] = df['Score'].rank(method='average', ascending=False)

# 打印带有排名的数据框
print("\n带有排名的数据框:")
print(df)

DataFrame.assign() 链式新增或修改变量。

import pandas as pd

# 创建一个示例 DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})

# 链式新增一列 C,其值为 A 列的平方
df = df.assign(C=lambda x: x['A'] ** 2)

print(df)

DataFrame.sample(n, frac) 随机抽取指定数量或比例的行。

import pandas as pd

# 创建一个示例 DataFrame
data = {
    'A': [1, 2, 3, 4, 5],
    'B': [10, 20, 30, 40, 50],
    'C': ['a', 'b', 'c', 'd', 'e']
}
df = pd.DataFrame(data)

print("原始 DataFrame:")
print(df)

# 使用 sample 方法随机抽取 n 个样本
sampled_n = df.sample(n=3)  # 随机抽取 3 行
print("\n随机抽取 3 行的结果:")
print(sampled_n)

# 使用 sample 方法随机抽取 frac 比例的样本
sampled_frac = df.sample(frac=0.6)  # 随机抽取 60% 的行
print("\n随机抽取 60% 的行的结果:")
print(sampled_frac)

explode() 把列表型元素展开为多行。

import pandas as pd

# 构造示例数据
data = {
    'A': [1, 2, 3],
    'B': [[4, 5], [6], [7, 8, 9]]
}
df = pd.DataFrame(data)

# 使用 explode 展开列 B
exploded_df = df.explode('B')

# 输出构造的数据和展开后的结果
print("原始数据:")
print(df)
print("\n展开后的数据:")
print(exploded_df)

.mask() 条件替换,将不满足条件的值替换为指定值。

import pandas as pd

# 创建一个示例 DataFrame
data = {
    'math': [70, 85, 90, 75, 60],
    'science': [80, 95, 88, 70, 75],
    'history': [90, 80, 70, 65, 85]
}
df = pd.DataFrame(data)

print("原始 DataFrame:")
print(df)

# 使用 .mask() 方法将所有低于 80 分的成绩替换为 NaN
df_masked = df.mask(df < 80)

print("\n使用 .mask() 替换后的 DataFrame:")
print(df_masked)

abs() 计算 DataFrame 或 Series 的每个元素的绝对值。

import pandas as pd

# 创建一个示例 DataFrame
df = pd.DataFrame({'A': [-1, 2, -3], 'B': [4, -5, 6]})

# 计算绝对值
df_abs = df.abs()
print(df_abs)

dot() 用于矩阵乘法,适用于两个 DataFrame 或一个 DataFrame 和一个 Series。

import pandas as pd

# 创建两个示例 DataFrame
df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame([[5, 7], [6, 8]], index=['A', 'B'])  # df2 的行索引与 df1 的列名对齐

# 矩阵乘法
df_dot = df1.dot(df2)
print(df1)
print(' ')
print(df2)
print(' ')
print(df_dot)

reset_index() 将索引重置为默认整数索引。

import pandas as pd

# 创建一个示例 DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}, index=['a', 'b', 'c'])

print("原始 DataFrame:")
print(df)

# 重置索引
df_reset = df.reset_index()

print("\n重置索引后的 DataFrame:")
print(df_reset)

transform() 分组后转换,常用于标准化处理。

import pandas as pd

# 创建一个简单的 DataFrame
data = {
    'A': [1, 2, 3, 4],
    'B': [10, 20, 30, 40],
    'C': [100, 200, 300, 400]
}

df = pd.DataFrame(data)

# 定义一个函数,用于标准化列
def normalize(column):
    return (column - column.min()) / (column.max() - column.min())

# 使用 transform() 方法对每一列应用函数
normalized_df = df.transform(normalize)

print("标准化后的 DataFrame:")
print(normalized_df)

where() 条件替换,保留满足条件的值,将不满足条件的值替换为指定值。

import pandas as pd

# 创建一个简单的 DataFrame
data = {
    'A': [1, 2, 3, 4],
    'B': [10, 20, 30, 40],
    'C': [100, 200, 300, 400]
}

df = pd.DataFrame(data)

# 使用 where() 方法,将大于 20 的值替换为 NaN
df.where(df <= 20, other=pd.NA, inplace=True)

print("修改后的 DataFrame:")
print(df)


网站公告

今日签到

点亮在社区的每一天
去签到