hdfs 저장소의 테이블에 추가 할 데이터 프레임을 여러 번 반복하여 처리하려고합니다. 색인은 서로 중첩됩니다. 저장소에없는 인덱스가있는 행만 추가하려고합니다.HDFS 저장소가있는 테이블에 새 인덱스 만 추가하는 방법
MCVE
내 데이터가 d1
및 d2
프레임 고려 : 나는 다음과 같은 논리를 달성 할
d1 = pd.DataFrame.from_dict(
{('a', 'x'): {'col': 1}, ('a', 'y'): {'col': 1}}, orient='index')
d2 = pd.DataFrame.from_dict(
{('b', 'x'): {'col': 2}, ('a', 'y'): {'col': 2}}, orient='index')
print(d1, '\n\n', d2)
col
a x 1
y 1
col
a y 2
b x 2
:
d1.append(d2.loc[d2.index.difference(d1.index)])
col
a x 1
y 1
b x 2
그러나 나는이 원하는 hdfs 저장소에 추가. 나는 당신이 인덱스 ('a', 'y')
는 두 개의 서로 다른 값으로 중복되는 것을 볼 수 있습니다
d1.to_hdf('test.h5', 'mytable', format='table')
d2.to_hdf('test.h5', 'mytable', append=True)
pd.read_hdf('test.h5', 'mytable')
col
a x 1
y 1
y 2
b x 2
을 시도했다
[** @ Jeff 's answer **] (https://stackoverflow.com/a/19326312/2336654)와 Grr의 답변을 결합하면 내가 있어야 할 곳이 생겼습니다. – piRSquared