当前位置: 首页 > 知识库问答 >
问题:

Python Panda在循环中追加dataframe

金高飞
2023-03-14

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

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

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) 
   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
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

我如何才能做到这一点使用熊猫和什么是最好的可能的方式做到这一点。

注意:这里这一行

h = get_symbol_data(p1)

正在从API中获取一些数据

共有1个答案

许博达
2023-03-14

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

然后,您可以使用pandas进行构建,即只需将数据库或文件的内容读取到DataFrame中即可进行数据分析。

现在,如果您真的想坚持使用这种方法,我建议您joinconcat在获得更多数据时增长dataframe

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是一个函数,它接受一个文件名并返回一个以正确方式格式化的数据文件名,这取决于您是否能满足您的需要。

 类似资料:
  • 我有一个两个项目的列表,每个项目是一个文本字符串。我想围绕这两个项目循环,如果一个单词不在一组单词中,则基本上删除它。但是,下面的代码将所有单词放在一起,而不是创建两个单独的项。我希望我的更新列表包含两个项目,每个原始项目对应一个im更新:

  • 我试图通过循环元素,然后通过分页单击来获得链接列表。我不确定如何在熊猫数据帧中的每个循环经过下面显示的分页后追加,这样我就可以在循环之外调用数据帧来列出所有的链接。 它总是覆盖并打印出最后一行。

  • 我试过熊猫串连或类似,但似乎没有效果。你知道吗?谢了。

  • 问题内容: 我有以下for循环: 这样创建的每个数据框都具有与其他列相同的大多数列,但不是全部。而且,它们都只有一行。我需要的是将for循环产生的每个数据帧的所有不同列和每一行添加到数据帧中 我尝试了串联或类似的大熊猫,但似乎没有任何效果。任何想法?谢谢。 问题答案: 假设您的数据如下所示: 然后可以将其替换为 换句话说,不要为每一行形成一个新的DataFrame。相反,请收集字典列表中的所有数据

  • 问题内容: 我是一名基本的python程序员,因此希望我的问题的答案会很容易。我正在尝试拿字典并将其附加到列表中。然后,字典更改值,然后再次循环添加。似乎每次执行此操作时,列表中的所有词典都会更改其值以匹配刚刚添加的值。例如: 我认为结果是,但是我得到了: 任何帮助是极大的赞赏。 问题答案: 您需要追加一个 副本 ,否则您将一遍又一遍地添加对同一词典的引用: 我用和代替和; 您不想掩盖内置类型。

  • 我是这里的一个新的python用户。我一直在写一个代码,使用selenium和beautiful soup去一个网站,得到html表,并把它变成一个数据帧。 state_list=[] df=pd.dataframe() 对于状态中的状态:driver=webdriver.chrome(executable_path='c://webdrivers/chromedriver.exe')driver