for 루프에서 변수를 사용하여 여러 데이터 프레임의 이름을 지정하려고합니다. 내가 시도한 것은 다음과 같습니다.
for name in DF['names'].unique():
df_name = name + '_df'
df_name = DF.loc[DF['names'] == str(name)
DF [ 'names'] 열의 이름 중 하나가 'George'이면 생성 된 데이터 프레임의 시작 부분을 인쇄하기 위해 아래 명령이 작동해야합니다.
George_df.head()
하지만 오류 메시지가 나타납니다.
TypeError: unsupported operand type(s) for +: 'int' and 'str'
이전 질문은 사전에서이를 수행하는 방법에 대해 논의했지만 데이터 프레임에 대해이를 구현하는 방법을 찾고 있습니다.
설정
df=pd.DataFrame({'names' : ['a','a','b','b'], 'values':list('1234')})
print(df)
names values
0 a 1
1 a 2
2 b 3
3 b 4
globals
및 사용DataFrame.groupby
for name, group in df.groupby('names'):
globals()[f'df_{name}'] = group
print(df_a)
names values
0 a 1
1 a 2
print(df_b)
names values
2 b 3
3 b 4
사용을 globals
권장 하지는 않지만 사전을 사용하는 것이 좋습니다.
dfs = dict(df.groupby('names').__iter__())
print(dfs['a'])
names values
0 a 1
1 a 2
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다