나는 물리학 코드를 작성하기 위해 팬더 (0.9.1)를 사용하고 있습니다.팬더 그룹화되고 정상적인 데이터 프레임에 가입하십시오
레벨 :
class 'pandas.core.frame.DataFrame'>
Int64Index: 37331 entries, 0 to 37330
Data columns:
atomic_number 37331 non-null values
ion_number 37331 non-null values
level_number 37331 non-null values
energy 37331 non-null values
g 37331 non-null values
metastable 37331 non-null values
라인 : 나는 두 dataframes이
내가해야 할 몇 가지있다<class 'pandas.core.frame.DataFrame'>
Int64Index: 314338 entries, 0 to 314337
Data columns:
id 314338 non-null values
wavelength 314338 non-null values
atomic_number 314338 non-null values
ion_number 314338 non-null values
f_ul 314338 non-null values
f_lu 314338 non-null values
level_number_lower 314338 non-null values
level_number_upper 314338 non-null values
dtypes: float64(3), int64(7)
: 나는 선 (원자, 이온 수준에 가입 할 필요가, 레벨) : 처음에는 원자, 이온, level_number_upper 그리고 원자, 이온, level_number_lower. 조인을 미리 계산할 수있는 방법이 있습니까? 메모리는 문제가 아니지만 속도는 중요합니다.
또한 레벨 (원자, 이온)을 그룹화하고 레벨을 조작해야합니다. 나는 이것을 (이미 믿을 수 없을만큼 빠름) 이미했으나 결과 시리즈를 라인 데이터 프레임에 결합하는 데 어려움을 겪었다.
어떻게하면됩니까?
건배 볼프강
업데이트 v1의
내가
def calc_group_func(group):
return np.sum(group['g']*np.exp(-group['energy'])
grouped_data = levels.group_by('atomic_number', 'ion_number')
grouped_data.apply(calc_group_func)
하고 난에 줄 그룹화 된 데이터를/가입 병합 할 코드 조각을 여기에 병합에 가입 할 것을 표시하려면 atomic_number 및 ion_number
먼저 가입/병합을 수행 한 다음 groupby를 수행 하시겠습니까? –
그래서 Dataframe 레벨은 라인 데이터 프레임보다 훨씬 짧습니다. groupby 전에 조인/병합을 수행하는 데 많은 비용이들 것입니다. –
확인하려면 groupby 객체를 데이터 프레임과 병합/결합하고 싶습니까? –