如何根据数组中的每个元素创建对应名称的Pandas DataFrame?
解决你的Pandas循环问题
嘿,我来帮你捋捋这个循环的问题哈~
首先,你现在写的循环有个关键问题:
for i in company_id: i = pd.DataFrame()
每次循环里,你先把i赋值为company_id里的一个公司ID,但紧接着又把i改成了空的DataFrame——这相当于直接丢弃了原来的公司ID值,而且每次循环都会覆盖i,最后你得到的i只是一个空DataFrame,完全没用到之前的公司ID数组内容,这肯定不是你想要的效果对吧?
分情况给你解决方案
情况1:想为每个公司ID创建对应的数据表(比如从原DataFrame筛选该公司的数据)
如果你的目标是把原DataFrame按公司ID拆分,每个公司对应一个单独的DataFrame,最方便的方式是用字典来存储,这样可以通过公司ID快速找到对应的数据:
# 初始化一个空字典,用来存每个公司的DataFrame company_dataframes = {} # 遍历每个公司ID for comp_id in company_id: # 从原df中筛选当前公司ID的所有数据,存入字典 company_dataframes[comp_id] = df[df['COMPANY_IDENTIFICATION'] == comp_id].copy()
之后你想调用某个公司的数据,直接用company_dataframes['BBG000QFYJ26']就能拿到啦~
情况2:只是想测试循环,打印每个公司ID的内容
那你直接打印循环变量就行,别重新赋值:
for i in company_id: print(i) # 这样会逐个输出数组里的每个公司ID
内容的提问来源于stack exchange,提问作者ForsakenPlague
相关产品推荐
相关产品推荐

