prosource

판다 이름 가져오기 데이터 프레임

probook 2023. 9. 25. 22:50
반응형

판다 이름 가져오기 데이터 프레임

DataFrame의 이름을 가져와서 문자열로 인쇄하려면 어떻게 해야 합니까?

예:

boston(csv 파일에 할당된 변수 이름)

import pandas as pd
boston = pd.read_csv('boston.csv')

print('The winner is team A based on the %s table.) % boston

다음을 사용하여 데이터 프레임의 이름을 지정한 다음 원하는 곳에서 이름을 부를 수 있습니다.

import pandas as pd
df = pd.DataFrame( data=np.ones([4,4]) )
df.name = 'Ones'

print df.name
>>>
Ones

가끔씩df.name안 돼요.

오류 메시지가 나타날 수 있습니다.

'DataFrame' 개체에 'name' 속성이 없습니다.

다음 기능을 사용해 보십시오.

def get_df_name(df):
    name =[x for x in globals() if globals()[x] is df][0]
    return name

많은 상황에서, 사용자 정의 속성은pd.DataFrame개체는 필요하지 않습니다.또한, 다음과 같은 점에 유의하십시오.pandas-object 속성이 serialize되지 않을 수 있습니다.따라서 피클링은 이 데이터를 잃게 됩니다.

대신 적절한 이름이 지정된 키로 사전을 만들고 다음을 통해 데이터 프레임에 액세스하는 것을 고려합니다.dfs['some_label'].

df = pd.DataFrame()

dfs = {'some_label': df}

DataFrame에는 이름이 없지만 사용할 수 있는 (실험용) 속성 사전이 있습니다.예를 들어,

df.attrs['name'] = "My name"   # Can be retrieved later

속성은 일부 작업을 통해 유지됩니다.

여기서부터 제가 이해하는 DataFrame은 다음과 같습니다.

DataFrame은 잠재적으로 다른 유형의 열이 있는 2차원 레이블링된 데이터 구조입니다.스프레드시트나 SQL 테이블, 시리즈 객체의 딕트처럼 생각할 수 있습니다.

시리즈는 다음과 같습니다.

영상 시리즈는 모든 데이터 유형(정수, 문자열, 부동 소수점 번호, Python 개체 등)을 저장할 수 있는 1차원 레이블이 지정된 배열입니다.

시리즈는.name다음과 같이 접근할 수 있는 속성:

 In [27]: s = pd.Series(np.random.randn(5), name='something')

 In [28]: s
 Out[28]: 
 0    0.541
 1   -1.175
 2    0.129
 3    0.043
 4   -0.429
 Name: something, dtype: float64

 In [29]: s.name
 Out[29]: 'something'

편집: OP의 의견을 바탕으로 OP가 다음과 같은 것을 찾고 있었다고 생각합니다.

 >>> df = pd.DataFrame(...)
 >>> df.name = 'df' # making a custom attribute that DataFrame doesn't intrinsically have
 >>> print(df.name)
 'df'

특징 분석을 위한 모듈을 만들고 있는데 팬더의 이름으로 보고서를 작성하고 싶어서 당신과 같은 필요성을 가지고 있었습니다.분석 중인 데이터 프레임.이를 해결하기 위해 검사 라이브러리와 함께 구현된 @ scohe001 및 @LeopardShark에서 제공하는 솔루션을 사용했습니다.

import inspect

def aux_retrieve_name(var):
    callers_local_vars = inspect.currentframe().f_back.f_back.f_locals.items()
    return [var_name for var_name, var_val in callers_local_vars if var_val is var]

다른 함수에서 호출할 예정이므로 추가 .f_back항에 유의하십시오.

def header_generator(df):
    print('--------- Feature Analyzer ----------')
    print('Dataframe name: "{}"'.format(aux_retrieve_name(df)))
    print('Memory usage: {:03.2f} MB'.format(df.memory_usage(deep=True).sum() / 1024 ** 2))
    return

주어진 데이터 프레임으로 이 코드를 실행하면 다음과 같은 출력을 얻을 수 있습니다.

header_generator(trial_dataframe)

--------- 피쳐 분석기 --------------
데이터프레임 이름: "trial_dataframe"
메모리 사용량: 63.08MB

다음은 샘플 함수입니다: 'df.name = file' : 아래 코드의 여섯 번째 줄

def df_list():
    filename_list = current_stage_files(PATH)
    df_list = []
    for file in filename_list:
        df = pd.read_csv(PATH+file)
        df.name = file
        df_list.append(df)
    return df_list

언급URL : https://stackoverflow.com/questions/31727333/get-the-name-of-a-pandas-dataframe

반응형