목록 이해를 사용하여 데이터 프레임을 반복하고 iloc을 사용하여 위치에 새 값을 설정하려고합니다. 나는 그것이 올바르게 반복되고 있음을 확인했습니다.
import pandas as pd
import numpy as np
df = pd.DataFrame([np.arange(10)]*10)
#working
for i in range(10):
for j in range(10):
df.iloc[i,j] = 0+i
#not working
[df.iloc[i,j] = 5 for i in range(10) for j in range(10)]
누군가 위의 작동하지 않는 이유를 설명 할 수 있습니까? 또는 무엇을할까요?
df.iloc[i,j] = 5
listcomp 내에서 할당 문을 수행 하므로 작동하지 않습니다. df.iloc[i,j] = 5
listcomp가 목록을 만들기 위해 아무것도 반환하지 않으며 listcomp는 문을 허용하지 않습니다. listcomp 외부에 할당 문이 필요합니다. 귀하의 listcomp가 다음과 같이 변경 될 수 있습니다.
df[:] = [[5 for j in range(10)] for i in range(10)]
Out[17]:
0 1 2 3 4 5 6 7 8 9
0 5 5 5 5 5 5 5 5 5 5
1 5 5 5 5 5 5 5 5 5 5
2 5 5 5 5 5 5 5 5 5 5
3 5 5 5 5 5 5 5 5 5 5
4 5 5 5 5 5 5 5 5 5 5
5 5 5 5 5 5 5 5 5 5 5
6 5 5 5 5 5 5 5 5 5 5
7 5 5 5 5 5 5 5 5 5 5
8 5 5 5 5 5 5 5 5 5 5
9 5 5 5 5 5 5 5 5 5 5
그러나 이러한 데이터 프레임을 만드는 더 좋은 방법이 있기 때문에 이것은 문제를 표시하는 데 사용하는 예일 뿐이라고 생각합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다