编写一个 Python 程序以不同的方式重塑给定的数据框
pythonpandasserver side programmingprogramming更新于 2024/6/22 6:04:17
我们可以使用 melt()、stack()、unstack() 和 pivot() 函数重塑数据框。
解决方案 1
定义一个数据框。
应用 melt() 函数将宽数据框列转换为行。它定义如下,
df.melt()
示例
让我们看看下面的代码以更好地理解 −
import pandas as pd
df = pd.DataFrame({'Id':[1,2,3],'Age':[13,14,13],'Mark':[80,90,85]})
print("Dataframe is:\n",df)
print(df.melt())
输出
Dataframe is: Id Age Mark 0 1 13 80 1 2 14 90 2 3 13 85 variable value 0 Id 1 1 Id 2 2 Id 3 3 Age 13 4 Age 14 5 Age 13 6 Mark 80 7 Mark 90 8 Mark 85
解决方案 2
定义一个数据框。
应用 stack() 函数来增加数据框中索引的级别。它定义如下,
df.stack().to_frame()
如果要恢复更改,可以使用 unstack()。
df.unstack().to_frame()
示例
让我们看看下面的实现以获得更好的理解 −
import pandas as pd
df = pd.DataFrame({'Id':[1,2,3],'Age':[13,14,13],'Mark':[80,90,85]})
print("Dataframe is:\n",df)
print(df.stack().to_frame())
print(df.unstack().to_frame())
输出
Dataframe is: Id Age Mark 0 1 13 80 1 2 14 90 2 3 13 85 0 0 Id 1 Age 13 Mark 80 1 Id 2 Age 14 Mark 90 2 Id 3 Age 13 Mark 85 0 Id 0 1 1 2 2 3 Age 0 13 1 14 2 13 Mark 0 80 1 90 2 85
解决方案 3
定义一个数据框
应用pivot()函数根据Id列重塑数据框,
df.pivot(columns='Id')
示例
让我们看看下面的实现以便更好地理解−
import pandas as pd
df = pd.DataFrame({'Id':[1,2,3],'Age':[13,14,13],'Mark':[80,90,85]})
print("Dataframe is:\n",df)
print(df.pivot(columns='Id'))
输出
Dataframe is: Id Age Mark 0 1 13 80 1 2 14 90 2 3 13 85 Age Mark Id 1 2 3 1 2 3 0 13.0 NaN NaN 80.0 NaN NaN 1 NaN 14.0 NaN NaN 90.0 NaN 2 NaN NaN 13.0 NaN NaN 85.0
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/
打印
下一节:用 Python 编写一个程序来计算分组数据协方差并计算给定数据框中两列之间的分组数据协方差 ❯❮ 上一节:用 Python 编写一个程序,移动第一列并从用户那里获取值,如果输入可以被 3 和 5 整除,则填充缺失值

