위의 행을 바탕으로 다음팬더는 아래 내가 같은 dataframe을
import pandas as pd
data={'col1':[1,3,3,1,2,3,2,2, 1], 'col2':[np.nan, 1, np.nan, 1, np.nan, np.nan, np.nan, 2, np.nan]}
df=pd.DataFrame(data,columns=['col1', 'col2'])
print df
col1 col2
0 1 NaN
1 3 1.0
2 3 NaN
3 1 1.0
4 2 NaN
5 3 NaN
6 2 NaN
7 2 2.0
8 1 NaN
내가 col2
의 값이 동일한 경우 col2
에 알엇 NaN의 채우는 세 번째 열을 만들기 위해 노력하고 있습니다를 1.0
또는 위에있는 행 col2
은 1.0
입니다. 마지막 dataframe은 다음과 같이 보일 것이다 : 나는 시도
col1 col2 col3
0 1 NaN NaN
1 3 1.0 1.0
2 3 NaN 1.0
3 1 1.0 1.0
4 2 NaN 1.0
5 3 NaN 1.0
6 2 NaN 1.0
7 2 2.0 2.0
8 1 NaN NaN
먼저 접근했다 :
col1 col2 col3
0 1 NaN 0
1 3 1.0 1
2 3 NaN 1
3 1 1.0 1
4 2 NaN 1
5 3 NaN 0
6 2 NaN 0
7 2 2.0 0
8 1 NaN 0
의 첫 번째 인스턴스를 해결합니다
df['col3'] = ((df['col2']== 1) | ((df['col2'].shift()== 1))).astype('int')
이이 dataframe 날 잎 누락 된 값은 채우지 만 계속 누락 된 값을 채우지는 않습니다. 나 또한 np.where()
함수를 사용하여 시도하고 동일한 결과를 얻을.
여러 인스턴스를 연속으로 수정하는 팬더에서이 방법을 쓸 수 있습니까?
col2가 1.0이거나 위의 행이 1.0 인 경우에만 값을 채우고 싶습니다. 위의 행이 2.0 인 누락 값도 제안 사항입니다. – jth359
미안하지만 세부 사항을 놓쳤습니다. 다른 답변은 완벽하게 작동합니다. – shish023