sri*_*amn 8 python append pandas
我有一个pandas Series对象,每个值都是a DataFrame.我正在尝试将此转换为单个,DataFrame其中所有Series值(个体DataFrame)堆叠在彼此之上.如何在没有循环的情况下实现这一目标?
下面的玩具示例生成测试对象(results).
import pandas as pd
import numpy as np
numrows = 10000
def toy_function(x):
silly_sequence = np.random.uniform(10, 100, (x+1))
toy = pd.DataFrame({'ID':pd.Series(np.random.random_integers(1,20,3)),'VALUE':pd.Series((np.median(silly_sequence),np.mean(silly_sequence), np.max(silly_sequence)))})
return toy
results = pd.DataFrame({'ID':range(numrows)})['ID'].apply(toy_function)
Run Code Online (Sandbox Code Playgroud)
results是Series类型,每个元素是DataFrame这样的:
In [1]: results[1]
Out[1]:
ID VALUE
0 17 40.035398
1 8 40.035398
2 20 66.483083
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种堆叠等方式results[1],results[2]以产生这样的DataFrame:
ID VALUE
0 17 40.035398
1 8 40.035398
2 20 66.483083
4 12 25.035398
5 1 25.135398
6 19 65.553083
...
Run Code Online (Sandbox Code Playgroud)
尝试使用pd.concat.至少,pd.concat(series.values.tolist())应该工作.
它的默认设置是获取一个pandas数据帧或系列列表,并将它们返回端到端.http://pandas.pydata.org/pandas-docs/stable/merging.html
在执行此操作时连接结果并忽略您的索引:
df_stacked = pd.concat([r for r in results], ignore_index=True)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1911 次 |
| 最近记录: |