给定以下熊猫系列:
>>>series = pd.Series([1, 2, 3], index=["a", "b", "c"])
>>>series
a 1
b 2
c 3
dtype: int64
有没有办法产生这个?
>>>series.do_something()
a_x 1
b_x 2
c_x 3
dtype: int64
背景
i有一个由数据框架聚合函数产生的系列: df.sum()
索引当前是列名称,但我希望它们是列名加上_sum
,就像:
>>>data
col1_sum 500.00
col2_sum 9324.0
col3_sum 0.2340
dtype: float64
In [49]: series.index += '_sum'
In [50]: series
Out[50]:
a_sum 1
b_sum 2
c_sum 3
dtype: int64
也许 series.add_suffix('_x')
匹配您的需求!
和 series.add_prefix('x_')
返回这样的东西:
x_a 1
x_b 2
x_c 3
dtype: int64
有关完整性,您可以使用str.replace
。
s.index = s.index.str.replace('(.*)', r'1_sum')
print(s)
a_sum 1
b_sum 2
c_sum 3
dtype: int64
如果任何人都对将其用于dataFrame感到好奇,下面的摘要完成了任务。
其中df是pandas dataframe,而" c_"是所需的前缀。
数据框架的add_prefix的默认行为是将前缀添加到列中。因此,转置,然后添加_prefix,然后向后转移。
df = df.t.add_prefix('c _')。t