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)