Pandas:将空df与现有df连接

z4bn682m  于 2023-05-12  发布在  其他
关注(0)|答案(1)|浏览(195)

我有两个DF:

  • 历史df:它是空的,只有5列:["count_date", "device", "hour", "count", "average_speed"]
  • result df:38688行5列(与历史df相同)

当我试图将它们连接起来时:

historical_df = pd.concat(["historical_df", "result"], axis=0, ignore_index=True)

我得到以下错误:

TypeError: cannot concatenate object of type '<class 'str'>'; only Series and DataFrame objs are valid

我已经检查过了,两个df都是DataFrame类型。
你知道它可能来自哪里吗?我是不是漏掉了什么?
提前感谢您的帮助。

oalqel3c

oalqel3c1#

你的代码是正确的,除了一个小细节:根据pandas.concat的官方documentation,我们有:
objs:Series或DataFrame对象的序列或Map
换句话说,第一个参数应该是pandas DataFrames的列表;而不是字符串列表。在你的代码中,这意味着:

historical_df = pd.concat([historical_df, result], axis=0, ignore_index=True)

请注意,我只是删除了字符串的引号。
下面是一个虚拟代码,它将产生所需的结果:

import pandas as pd

# create an empty dataframe with column names
result = pd.DataFrame(columns=['count_date', 'device', 'hour', 'count', 'average_speed'])

# create an existing dataframe
historical_df = pd.DataFrame({'count_date': ['2023-05-09', '2023-05-10'], 
                            'device': ['A', 'B'], 
                            'hour': [8, 9],
                            'count': [100, 200],
                            'average_speed': [50.0, 60.0]})

# concatenate result with historical_df
historical_df = pd.concat([result, historical_df])

相关问题