在Python 3中如何“融化”pandas.DataFrame对象?

2024-10-02 02:34:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图melt某个pd.DataFrame的某些列,同时保留另一个列的列。在本例中,我想将meltsine和{}列合并成{},然后将它们来自哪个列(即sine或{})放入一个名为data_type的新列中,然后保留原来的desc列。在

如何使用pd.melt来实现这一点,而不需要手动熔化和连接每个组件?

# Data
a = np.linspace(0,2*np.pi,100)
DF_data = pd.DataFrame([a, np.sin(np.pi*a), np.cos(np.pi*a)], index=["t", "sine", "cosine"], columns=["t_%d"%_ for _ in range(100)]).T
DF_data["desc"] = ["info about this" for _ in DF_data.index]

enter image description here

我这样做的方式:

^{pr2}$

enter image description here

如果我这样做,我会彻底崩溃

enter image description here

针对评论: enter image description here


Tags: indataframedffordataindextypenp
1条回答
网友
1楼 · 发布于 2024-10-02 02:34:14

好吧,所以我不得不创建一个类似的df,因为我不能访问你的a变量。我将列表的a变量从0更改为99。。。所以t是0到99

你可以这样做:

a = range(0, 100)
DF_data = pd.DataFrame([a, [np.sin(x)for x in a], [np.cos(x)for x in a]], index=["t", "sine", "cosine"], columns=["t_%d"%_ for _ in range(100)]).T
DF_data["desc"] = ["info about this" for _ in DF_data.index]

df = pd.melt(DF_data, id_vars=['t','desc'])
df.head(5)

这将返回您要查找的内容。在

^{pr2}$

相关问题 更多 >

    热门问题