我有以下示例代码:
def return_table_df(table_name, chunksize,conn):
try:
df = pandas.read_sql_table(table_name,conn, chunksize=chunksize)
return df
except Exception as e:
logging.error(e)
data_frame_chunks = return_table_df('table_name',100000,connection)
如何在上面的数据框架中添加一个列,因为它有几百万条记录?
我希望有一种替代方法可以将整个数据帧加载到内存中然后添加列。
提前致谢。
答案 0 :(得分:1)
情景1
创建一个空白列。这很简单,只需为数据帧分配一个新列即可。您需要迭代read_sql_table
的返回值,这是一个迭代器。
def return_table_df(table_name, chunksize, conn):
df_list = []
for df in pandas.read_sql_table(table_name, conn, chunksize=chunksize)
df['blank'] = np.nan
df_list.append(df)
return pd.concat(df_list, ignore_index=True)
情景2
将现有系列添加为新列。在最后添加列可能更简单。
s = ... # your series
def return_table_df(table_name, chunksize,conn):
df_list = []
for df in pandas.read_sql_table(table_name, conn, chunksize=chunksize)
df_list.append(df)
df = pd.concat(df_list, ignore_index=True)
df['newCol'] = s
return df