Nil*_*ngh 0 python dataframe pandas
我正在尝试将许多数据帧附加到一个空数据帧中,但它不起作用。为此,我正在使用本教程,我的代码如下:
我正在循环内生成一个框架,我的代码是:
def loop_single_symbol(p1):
i = 0
delayedPrice = []
symbol = []
while i<5 :
print(p1)
h = get_symbol_data(p1)
delayedPrice.append(h['delayedPrice'])
symbol.append(h['symbol'])
i+=1
df = pd.DataFrame([], columns = [])
df["delayedPrice"] = delayedPrice
df["symbol"] = symbol
df["time"] = get_nyc_time()
return df
time.sleep(4)
Run Code Online (Sandbox Code Playgroud)
这段代码生成一个像这样的框架:
delayedPrice symbol time
0 30.5 BAC 6:6
1 30.5 BAC 6:6
2 30.5 BAC 6:6
3 30.5 BAC 6:6
4 30.5 BAC 6:6
Run Code Online (Sandbox Code Playgroud)
我正在运行这样的循环:
length = len(symbol_list())
data = ["BAC","AAPL"]
df = pd.DataFrame([], columns = [])
for j in range(length):
u = data[j]
if h:
df_of_single_symbol = loop_single_symbol(u)
print(df_of_single_symbol)
df.append(df_of_single_symbol, ignore_index = True)
print(df)
Run Code Online (Sandbox Code Playgroud)
我正在尝试将两个或多个数据帧附加到一个空数据帧中,但使用上面的代码我得到:
Empty DataFrame
Columns: []
Index: []
Run Code Online (Sandbox Code Playgroud)
我想要这样的结果:
delayedPrice symbol time
0 30.5 BAC 6:6
1 30.5 BAC 6:6
2 30.5 BAC 6:6
3 30.5 BAC 6:6
4 30.5 BAC 6:6
0 209.15 AAPL 6:6
1 209.15 AAPL 6:6
2 209.15 AAPL 6:6
3 209.15 AAPL 6:6
4 209.15 AAPL 6:6
Run Code Online (Sandbox Code Playgroud)
我该如何使用 panda 来做到这一点以及最好的方法是什么。
注意:这里这一行
h = get_symbol_data(p1)
Run Code Online (Sandbox Code Playgroud)
正在从 API 获取一些数据
正如我在评论中提到的,附加到 pandas 数据帧并不被认为是一个很好的方法。相反,如果您需要可扩展性,我建议您使用更合适的东西来存储数据,例如文件或数据库。
然后,您可以使用 pandas 进行其构建,即通过将数据库或文件的内容读入数据帧来进行数据分析。
现在,如果您真的想坚持使用这种方法,我建议您要么随着join
获得concat
更多数据而增加数据框
[编辑]
示例(来自我的脚本之一):
results = pd.DataFrame()
for result_file in result_files:
df = parse_results(result_file)
results = pd.concat([results, df], axis=0).reset_index(drop=True)
Run Code Online (Sandbox Code Playgroud)
parse_results
是一个函数,它接受一个文件名并返回一个以正确方式格式化的数据帧,由您决定是否满足您的需求。
归档时间: |
|
查看次数: |
12140 次 |
最近记录: |