如果你想将 Pandas DataFrame 中的列名转换为值,并将其作为数据的一部分,你可以使用 melt 函数或者 stack 方法来重新塑造数据。下面我会介绍两种方法:
DataFrame
melt
stack
melt 函数可以将 DataFrame 的列转为行,这样列名会变成一个新的列中的值。
import pandas as pd # 创建一个示例 DataFrame df = pd.DataFrame({ 'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9] }) # 使用 melt 将列名转为行 melted_df = pd.melt(df, var_name='Variable', value_name='Value') print(melted_df)
Variable Value 0 A 1 1 A 2 2 A 3 3 B 4 4 B 5 5 B 6 6 C 7 7 C 8 8 C 9
在这个例子中:
var_name='Variable'
value_name='Value'
stack 方法也可以将列转换为行,并将列名放到新列的索引中。
import pandas as pd # 创建一个示例 DataFrame df = pd.DataFrame({ 'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9] }) # 使用 stack 转换 stacked_df = df.stack().reset_index(name='Value') # 将原始的列名(index)添加为一列 stacked_df.rename(columns={'level_0': 'Index', 'level_1': 'Variable'}, inplace=True) print(stacked_df)
Index Variable Value 0 0 A 1 1 1 A 2 2 2 A 3 3 0 B 4 4 1 B 5 5 2 B 6 6 0 C 7 7 1 C 8 8 2 C 9
stack()
reset_index()
level_0
level_1
根据你的需求选择适合的方式。
原文链接:codingdict.net