2024-10-04 01:30:39 发布
网友
我有一个日期框,看起来像这样:
d = {'text':['A','B'],'col1': [1, 2], 'col2': [3, 4]} df = pd.DataFrame(data=d) df text col1 col2 0 A 1 3 1 B 2 3
我想计算“平均值”列,并在标题“文本”上方添加标签“速率”:
'mean:' meanofcol1 meanofcol2 text col1 col2 0 A 1 3 1 B 2 3
谢谢你的帮助
仅按^{}、计数mean和^{}与另一个dictionary选择数字列:
mean
dictionary
d = {**df.select_dtypes(np.number).mean().to_dict(), **{'text': 'rate: '}} print (d) {'col1': 1.5, 'col2': 3.5, 'text': 'rate: '}
然后用^{}和^{}创建MultiIndex:
MultiIndex
df.columns = pd.MultiIndex.from_arrays([df.columns.map(d.get), df.columns]) #alternative #df.columns = [df.columns.map(d.get), df.columns] print (df) rate: 1.5 3.5 text col1 col2 0 A 1 3 1 B 2 4
如果所有数字列都可以不带第一个,则此替代方法-将文本列转换为索引,创建MultiIndex和最后一个^{}:
df = df.set_index('text') d = df.select_dtypes(np.number).mean() print (d) col1 1.5 col2 3.5 dtype: float64 df.columns = pd.MultiIndex.from_arrays([df.columns.map(d.get), df.columns]) #pandas 0.24.1+ df = df.rename_axis(columns=('rate: ','text'), index=None) #pandas bellow #df = df.rename_axis(('rate: ','text'), axis=1).rename_axis(None) print (df) rate: 1.5 3.5 text col1 col2 A 1 3 B 2 4
此外text还应动态分配:
text
df = df.rename_axis(columns=('rate: ', df.index.name), index=None) #df = df.rename_axis(('rate: ', df.index.name), axis=1).rename_axis(None)
仅按^{} 、计数} 与另一个
mean
和^{dictionary
选择数字列:然后用^{} 和^{} 创建
MultiIndex
:如果所有数字列都可以不带第一个,则此替代方法-将文本列转换为索引,创建} :
MultiIndex
和最后一个^{此外
text
还应动态分配:相关问题 更多 >
编程相关推荐