2016-12-08 1 views
0

키가 존재하지 않는 프레임에서 df.update()를 수행하고 있다면 내가 추가 할 수있는 가장 깨끗한 방법은 무엇입니까?팬더 삽입 또는 업데이트?

뭔가 같은 :

try: 
    df.update(new_data) 
except: 
    df.insert(new_data) 
+1

df.columns에'if key '를 테스트하는 것이 왜 좋은가요? new_data도 같은 크기입니까? 즉 행 수가 같습니까? 그렇다면 단순히 덮어 쓰거나 새 데이터로 새 열을 만드는 것이 어떨까요? – EdChum

+1

[허가보다 용서를 구하는 것이 더 쉽다] (https://docs.python.org/3/glossary.html#term-eafp)는 선호되는 파이썬 방식이다. –

답변

0

이 여기에 무엇을 실제 사용 사례 불분명하지만, 키가 열에 in 호출하여 이미 존재하는 경우 첫째로 당신은 테스트 할 수 있습니다 다음 경우 외에

In [61]: 
df = pd.DataFrame(np.random.randn(5,3), columns=list('abc')) 
df 

Out[61]: 
      a   b   c 
0 -0.968358 0.666118 0.758028 
1 -0.805671 -0.994780 0.624423 
2 0.449329 0.768457 -0.311637 
3 -0.793448 1.258319 -0.924384 
4 1.698867 -0.624939 -0.167027 

In [62]: 
'd' in df.columns 

Out[62]: 
False 

을 열이 존재하지 않으면 스칼라 값이거나 배열 길이가 같은지 여부에 관계없이 추가 할 수 있습니다.

In [63]: 
df['d'] = 10 
df 

Out[63]: 
      a   b   c d 
0 -0.968358 0.666118 0.758028 10 
1 -0.805671 -0.994780 0.624423 10 
2 0.449329 0.768457 -0.311637 10 
3 -0.793448 1.258319 -0.924384 10 
4 1.698867 -0.624939 -0.167027 10