我有一个列表' final_value'其中包含熊猫系列,下面有数据。我需要将多个熊猫系列的瓦片添加到一个系列中。 任何人都可以帮助我。
需要根据索引值添加值。
我在循环中尝试了final_value[i].add(final_value[i+1])
。但没有工作
数据:
[0 0.000000
1 14.522873
2 21.677418
3 10.791055
4 0.000000
5 7.176507
Name: (FDIUSGD Index, PX_LAST), Length: 6, dtype: float64,
0 -16.276548
1 -16.276548
2 -15.761264
3 -16.276548
4 -16.276548
5 -17.822402
Name: (USHBMIDX Index, PX_LAST), Length: 6, dtype: float64,
0 0.000000
1 5.972322
2 15.255200
3 -3.498313
4 2.698414
5 3.083199
Name: (USPHNSA Index, PX_LAST), Length: 6, dtype: float64,
预期产出:
0 -16.276548
1 4.218647
2 21.171354
3 -8.983806
4 -13.578134
5 -7.562696
谢谢!
答案 0 :(得分:4)
final_value = [
pd.Series(1, range(5)),
pd.Series(2, range(5)),
pd.Series(3, range(5))
]
只需使用sum
sum(final_value)
0 6
1 6
2 6
3 6
4 6
dtype: int64
或者您可以使用np.sum
pd.Series(np.sum([s.values for s in final_value], 0), final_value[0].index)
0 6
1 6
2 6
3 6
4 6
dtype: int64
答案 1 :(得分:3)
我们试试这个:
from functools import reduce
reduce(pd.Series.add, final_value)
示例:
print(final_values)
输入df:
[0 0.000000
1 14.522873
2 21.677418
3 10.791055
4 0.000000
5 7.176507
Name: 1, dtype: float64, 0 -16.276548
1 -16.276548
2 -15.761264
3 -16.276548
4 -16.276548
5 -17.822402
Name: 1, dtype: float64, 0 0.000000
1 5.972322
2 15.255200
3 -3.498313
4 2.698414
5 3.083199
Name: 1, dtype: float64]
from functools import reduce
reduce(pd.Series.add,final_value)
输出:
0 -16.276548
1 4.218647
2 21.171354
3 -8.983806
4 -13.578134
5 -7.562696
Name: 1, dtype: float64
约翰的方法
%timeit pd.concat(final_value, axis=1).sum(axis=1)
100个循环,最佳3:3.06 ms每个循环
functools reduce方法
%timeit reduce(pd.Series.add, final_value)
1000次循环,最佳3次:每次循环551μs
答案 2 :(得分:2)
使用pd.concat
上的axis=1
和sum
行
In [597]: pd.concat(final_value, axis=1).sum(axis=1)
Out[597]:
0 -16.276548
1 4.218647
2 21.171354
3 -8.983806
4 -13.578134
5 -7.562703
dtype: float64
详细
In [598]: final_value
Out[598]:
[0 0.000000
1 14.522873
2 21.677418
3 10.791055
4 0.000000
5 7.176500
Name: 1, dtype: float64, 0 -16.276548
1 -16.276548
2 -15.761264
3 -16.276548
4 -16.276548
5 -17.822402
Name: 1, dtype: float64, 0 0.000000
1 5.972322
2 15.255200
3 -3.498313
4 2.698414
5 3.083199
Name: 1, dtype: float64]