为了账号安全,请及时绑定邮箱和手机立即绑定

有没有办法在 Pandas 中为多个列添加标题?

有没有办法在 Pandas 中为多个列添加标题?

慕斯王 2021-12-21 17:27:16
我有一个像这样的 df Head 的数据框我想在第二、第三和第四列上方有一个名称为“累积平均值”的标题,以避免在每列中写入 3 次。你有什么主意吗?
查看完整描述

3 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

您可以使用 Pandas MultiIndex:https ://pandas.pydata.org/pandas-docs/stable/user_guide/advanced.html


例如,(示例简单地改编自文档)


col_names = [['', 'Cumulative mean', 'Cumulative mean', 'Cumulative mean'],['error', 'days', 'hour', 'minute']]

col_tuples = list(zip(*col_names))

index = pd.MultiIndex.from_tuples(col_tuples)


# use random numbers

listsForDataframe = np.array([

    np.random.normal(size=4), #list1

    np.random.normal(size=4), #list2

    np.random.normal(size=4), #list3

    np.random.normal(size=4)  #list4

])


# create the dataframe from lists like you did from the comment

# include the multiindex object

pd.DataFrame(listsForDataframe.T,columns=index)

结果:


            Cumulative mean                    

      error            days      hour    minute

0  0.008628        0.037006 -0.805627 -1.951804

1  0.527004        0.767902 -1.118312 -0.659892

2  0.453782        0.589880 -0.131054 -1.139802

3 -1.829740       -0.363859  1.133080  0.784958

通过“累积平均值”多列子集然后给出print(d[['Cumulative mean']]):


  Cumulative mean                    

             days      hour    minute

0        0.037006 -0.805627 -1.951804

1        0.767902 -1.118312 -0.659892

2        0.589880 -0.131054 -1.139802

3       -0.363859  1.133080  0.784958


查看完整回答
反对 回复 2021-12-21
?
墨色风雨

TA贡献1853条经验 获得超6个赞

我明白你的意思,发布一个虚拟情况:


考虑以下数据框:


df = pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]],columns=['a','cum_a','cum_b'])

print(df)

   a  cum_a  cum_b

0  1      2      3

1  4      5      6

2  7      8      9

我们的目标是使用模式更改列,例如cum_a,cum_b。这可以通过使用来完成df.filter():


values_to_rename=['change1','change2'] #sequential list of values to replace

d=dict(zip(df.filter(like='cum').columns,values_to_rename)) #create a dict

#{'cum_a': 'change1', 'cum_b': 'change2'}

df=df.rename(columns=d)

print(df)


   a  change1  change2

0  1        2        3

1  4        5        6

2  7        8        9


查看完整回答
反对 回复 2021-12-21
?
POPMUISE

TA贡献1765条经验 获得超5个赞

如果可以,请尝试这样做


import pandas as pd

import numpy as np


df = {'col_1': [0, 1, 2, 3],

    'col_2': [4, 5, 6, 7]}

df = pd.DataFrame(df)


df[[ 'column_new_1', 'column_new_2','column_new_3']] = [np.nan, 'dogs',3]

这可能可以解决问题


或者您可以尝试使用此示例


import pandas as pd

import numpy as np


df = pd.DataFrame({

'col_1': [0, 1, 2, 3],

'col_2': [4, 5, 6, 7]

 })

这些是您可以使用的示例,但当然您需要自己添加数据。


希望这有助于创建多行列


查看完整回答
反对 回复 2021-12-21
  • 3 回答
  • 0 关注
  • 468 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信