Python Pandas在循环中追加数据帧

2024-10-01 07:21:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将许多数据帧附加到一个空数据帧中,但它不起作用。为此,我使用本教程我的代码如下:

我在循环中生成一个帧,我的代码是:

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) 

此代码生成的帧如下所示:

^{pr2}$

我正在运行这样一个循环:

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)

我试图将两个或多个数据帧附加到一个空数据帧中,但使用上面的代码我得到:

Empty DataFrame
Columns: []
Index: []

我想要这样的结果:

   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

我如何使用panda来做到这一点?最好的方法是什么。在

注:这是这条线

h = get_symbol_data(p1)

正在从API获取一些数据


Tags: 数据代码dataframedfdatagettimesymbol
1条回答
网友
1楼 · 发布于 2024-10-01 07:21:10

正如我在评论中提到的,附加到pandas数据帧中被认为不是一个很好的方法。相反,我建议您使用更合适的方法来存储数据,如需要可伸缩性的文件或数据库。在

然后,您可以使用pandas进行构建,即通过将数据库或文件的内容读入数据帧来进行数据分析。在

现在,如果您真的想坚持这种方法,我建议join或{}在获得更多数据时增加数据帧

[编辑]

示例(来自我的一个脚本):

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)

parse_results是一个函数,它接受一个文件名并返回一个格式正确的数据帧,这取决于您的需要。在

相关问题 更多 >