以下是一个不使用pandas来融化一个大数据框的解决方法的示例代码:
# 定义融化函数
def melt_dataframe(dataframe, id_vars, value_vars):
melted_data = []
for index, row in dataframe.iterrows():
for col in value_vars:
melted_data.append({**{var: row[var] for var in id_vars}, 'variable': col, 'value': row[col]})
melted_dataframe = pd.DataFrame(melted_data)
return melted_dataframe
# 示例数据框
data = {'id': [1, 2, 3],
'name': ['Alice', 'Bob', 'Charlie'],
'age': [25, 30, 35],
'salary_2020': [50000, 60000, 70000],
'salary_2021': [55000, 65000, 75000]}
df = pd.DataFrame(data)
# 定义id和value变量
id_vars = ['id', 'name', 'age']
value_vars = ['salary_2020', 'salary_2021']
# 调用融化函数
melted_df = melt_dataframe(df, id_vars, value_vars)
在上述示例代码中,我们首先定义了一个melt_dataframe
函数,它接受一个数据框、id变量和value变量作为输入,并通过迭代数据框的每一行来创建一个新的融化数据框。融化数据框的每一行包含id变量、variable变量(来自value_vars)和value变量(来自value_vars对应的列)。最后,我们调用melt_dataframe
函数来融化示例数据框df
,并将结果存储在melted_df
中。