咨询Pandas中已弃用的makeMixedDataFrame函数的替代方案
Pandas自带替代
pd.util.testing样本DataFrame生成功能的方案 之前pd.util.testing模块里的makeMixedDataFrame、makeMissingDataframe等生成样本DataFrame的工具,目前并没有被转移到Pandas的其他官方模块中。如果想要完全依赖Pandas自身(无需额外安装第三方库),可以用Pandas基础API结合其依赖的numpy来手动实现这些功能,以下是具体替代方案:
1. 模拟makeMixedDataFrame生成混合类型DataFrame
原函数生成的是包含浮点型、字符串型、日期型的混合DataFrame,用以下代码可以实现完全一致的效果:
import pandas as pd import numpy as np def make_mixed_dataframe(): data = { 'A': np.arange(5.0), 'B': np.array([0.0, 1.0, 0.0, 1.0, 0.0]), 'C': [f'foo{i+1}' for i in range(5)], 'D': pd.date_range('2009-01-01', periods=5, freq='B') } return pd.DataFrame(data) # 使用示例 df = make_mixed_dataframe() print(df)
输出结果:
A B C D 0 0.0 0.0 foo1 2009-01-01 1 1.0 1.0 foo2 2009-01-02 2 2.0 0.0 foo3 2009-01-05 3 3.0 1.0 foo4 2009-01-06 4 4.0 0.0 foo5 2009-01-07
2. 模拟makeMissingDataframe生成带缺失值的DataFrame
可以通过随机为DataFrame的元素赋值为np.nan来实现:
import pandas as pd import numpy as np def make_missing_dataframe(n_rows=5, n_cols=4, missing_rate=0.2): # 生成随机数值型DataFrame df = pd.DataFrame(np.random.randn(n_rows, n_cols), columns=[f'Col{i+1}' for i in range(n_cols)]) # 随机设置缺失值 mask = np.random.choice([True, False], size=df.shape, p=[missing_rate, 1-missing_rate]) df[mask] = np.nan return df # 使用示例 missing_df = make_missing_dataframe() print(missing_df)
3. 其他通用样本DataFrame生成方式
如果需要更灵活的样本数据,还可以用Pandas的以下基础功能:
- 用
pd.DataFrame直接构造字典数据,自由组合数据类型(数值、字符串、日期、布尔值等) - 用
pd.date_range生成日期序列,pd.Series生成单列数据后组合成DataFrame - 用
numpy.random生成各类随机数值(整数、浮点、正态分布等),再转换为DataFrame
内容的提问来源于stack exchange,提问作者RMal
相关产品推荐
相关产品推荐

