2014-12-10 3 views
0

팬더 DataFrame의 값을 떨어 뜨리고 싶습니다. 그러나 팬 데스 DataFrame의 Demean 열 값

, 내 코드는

test_scores = df[test_score_vars] 
test_score_means = test_scores.mean() 
print(test_scores.sub(test_score_means, axis='columns').mean()) 

는 제로의 예상 목록을 반환하지 않습니다, 대신 내가 설명서를 따라하려고이 오류

ValueError: cannot broadcast shape [(21409,)] with block values [(1,)] 

이 제기하지만 내가 가진 어디 이해가 안 돼요 모양이 틀렸다.

그래서 팬더로 내 가치를 떨어 뜨릴 수 있습니까?

+1

무슨 뜻입니까? 그것은 당신이 올바른 평균에서 모든 값을 뺄려고하는 것처럼 보입니까? 왜 그냥'test_scores.sub (test_scores.mean()) '가 아닌지 – EdChum

+0

당신이하려는 것을 보여주는 작은 예제를 제공하면 사람들이 대답하기가 더 쉽습니다. – Akavall

+0

각 열을 비방하고 싶습니까? 또는 각 값에서 전체 데이터 프레임 평균을 뺍니다. – exp1orer

답변

0

문제점은 내 데이터 프레임의 값이 범주 적이라는 것이 었습니다. read_stata을 사용하여 데이터를 읽었으므로 값이 부동 상태인지 확인하기 위해 convert_categoricals=Falsepreserve_dtypes=False을 설정해야합니다.

올바른 dtype을 사용하면 test_scores.sub(test_scores.mean())이 작업을 수행합니다.

의견을 보내 주셔서 감사합니다.

관련 문제