gpt4 book ai didi

python - 将数据框转出到单行,其中列标有前缀

转载 作者:行者123 更新时间:2023-12-01 09:30:35 25 4
gpt4 key购买 nike

所以目前我正在尝试将 7x2 表折叠为 1x14 表,并让最终数据框中的 8 列以原始列标签为前缀。我有一种感觉,我的答案就在 .pivot() 中,但不知道如何到达那里。这是我到目前为止所拥有的:

原始表:

              polarity  subjectivity
count 1.0 1.0
mean 0.0 0.0
min 0.0 0.0
25% 0.0 0.0
50% 0.0 0.0
75% 0.0 0.0
max 0.0 0.0

我想去这里:

  subjectivity_count    subjectivity_mean   subjectivity_min    subjectivity_25%    subjectivity_50%    subjectivity_75%    subjectivity_max    polarity_count  polarity_mean   polarity_min    polarity_25%    polarity_50%    polarity_75%    polarity_max
0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0

我可以做到这一点,但是以一种非常hacky的方式。我的步骤是:

1)转置原始df,选择一行作为索引,并添加列前缀

df.T.loc['subjectivity'].add_prefix('subjectivity_') 

df.T.loc['polarity'].add_prefix('polarity_')

2) 使用 pd.concat 将它们连接在一起

3) 在此基础上创建一个新的 pd.DataFrame 构造函数并进行转置。

这是一种非常丑陋的完成工作的方式,而且似乎效率低下,因为我每次执行此操作时都会创建一个新的 DataFrame 对象。有什么建议吗?

最佳答案

这将完成您想要做的事情。

a = list(np.linspace(0,50))
b = list(np.linspace(0,100))
df = pd.DataFrame({'polarity':a, 'subjectivity': b})
df1 = df.describe()

df2 = df1.reset_index().melt(id_vars = ['index'], value_vars = ['polarity','subjectivity'])
df2['name'] = df2['variable'] + '_' + df2['index']
df2 = df2[['name','value']].set_index('name').transpose()

有关melt的信息,可以去here

关于python - 将数据框转出到单行,其中列标有前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50006988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com