gpt4 book ai didi

python - 如何将一个数据帧分割成多个,然后将其重新拼接到一个元组中,而无需进行硬编码

转载 作者:太空宇宙 更新时间:2023-11-03 21:14:28 25 4
gpt4 key购买 nike

我正在按标识符列对数据帧进行切片,并使用 for 循环和 globals() 创建子集数据帧。最后,我将所有切片数据帧组合成一个元组。如您所见,元组创建部分是手动的,但我需要将代码扩展到更大的数据集,并且无法手动执行此操作,并且希望将此步骤添加到我的 for 循环中以具有 tup 一步到位,无需输入“tup = (TT_a,TT_b,TT_c,TT_d,TT_e)”。我只需要输出,所以请建议任何方法来实现它,不需要使用 globals()

#creates dataframe
import pandas as pd
loc = [100,200,300,400,500,600,700,800,900,1000]
identifier = ['a','a','a','a','b','b','c','d','e','f']
d = {'loc':loc,'identifier':identifier}
df = pd.DataFrame(d)


#create sliced dataframe by identifier, 6 unique
for i in df['identifier'].unique():
globals()['TT_%s' % i] = df[df['identifier'] == i].reset_index()[['loc','identifier']]

%who

TT_a   TT_b    TT_c    TT_d    TT_e    TT_f    d   df  i   
identifier loc pd
#Final Output needed
tup = (TT_a,TT_b,TT_c,TT_d,TT_e)

最佳答案

首先,请不要这样使用globals...

使用字典:

d={}
for i in df['identifier'].unique():
if len(df.loc[df['identifier'] == i,'identifier']) > 1:
d['TT_%s' % i] = df.loc[df['identifier'] == i, ['loc','identifier']].reset_index()

关于python - 如何将一个数据帧分割成多个,然后将其重新拼接到一个元组中,而无需进行硬编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54820614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com