Pandas
DataFrame
에 두 개의 열이 있으며 인덱스는 datetime
입니다. 두 개의 열에는 동일한 매개 변수를 측정하는 데이터가 있지만 어느 열도 완료되지 않았습니다 (일부 행에는 데이터가 전혀 없으며 일부 행에는 두 열에 데이터가 있고 다른 데이터에는 열 'a'또는 'b'가 있음).KeyError : 인덱스에 없습니다. 팬더 데이터 프레임에서 생성 된 키를 사용합니다.
필자는 다음과 같은 코드를 작성하여 열의 틈을 찾고 이러한 틈이 나타나는 날짜 목록의 목록을 생성 한 다음이 목록을 사용하여 누락 된 데이터를 찾고 바꿉니다. 그러나 나는 KeyError: Not in index
을 3 행에 가져 왔는데, 색인에 사용하는 키가 DataFrame
에서 나왔기 때문에 이해할 수 없습니다. 누군가 이것이 왜 이런 일이 일어나고 있으며 그것을 고칠 수있는 방법을 설명 할 수 있습니까? 여기 코드는 다음과 같습니다
def merge_func(df):
null_index = df[(df['DOC_mg/L'].isnull() == False) & (df['TOC_mg/L'].isnull() == True)].index
df['TOC_mg/L'][null_index] = df[null_index]['DOC_mg/L']
notnull_index = df[(df['DOC_mg/L'].isnull() == True) & (df['TOC_mg/L'].isnull() == False)].index
df['DOC_mg/L'][notnull_index] = df[notnull_index]['TOC_mg/L']
df.insert(len(df.columns), 'Mean_mg/L', 0.0)
df['Mean_mg/L'] = (df['DOC_mg/L'] + df['TOC_mg/L'])/2
return df
merge_func(sve)
'df.loc [null_index, 'TOC_mg/L'] = df [ 'DOC_mg/L']' – EdChum
예, 완벽하게 작동합니다. 감사! – Bprodz
내가 답으로 게시하길 원하십니까? – EdChum