0
팬더 데이터 프레임이 있는데 'column'으로 표시된 특정 열의 계산을 기반으로하는 새 열을 추가해야합니다. numpy를 사용하여이 작업을 수행하는 방법을 찾았지만 항상 체인 된 인덱스에 대한 경고를 제공합니다. 나는 더 나은 해결책이 있어야한다고 확신합니다. 알고 계시면 도움을주십시오.pandas dataframe 다른 열의 캘리브레이션을 기반으로 새 열을 추가하고 연결 인덱스를 피하십시오
1 : 여기서 [key_site_num] I로부터 칩 ID의 데이터를 추출해야 할 열을 결정 열의 값
df_num_bin1['Chip_id_3']=np.where(df_num_bin1[key_site_num]==1,df_num_bin1[WB_89_S1]*0x100+df_num_bin1[WB_78_S1],df_num_bin1[WB_89_S2]*0x100+df_num_bin1[WB_78_S2])
df_num_bin1['Chip_id_2']=np.where(df_num_bin1[key_site_num]==1,df_num_bin1[WB_67_S1]*0x100+df_num_bin1[WB_56_S1],df_num_bin1[WB_67_S2]*0x100+df_num_bin1[WB_56_S2])
df_num_bin1['Chip_id_1']=np.where(df_num_bin1[key_site_num]==1,df_num_bin1[WB_45_S1]*0x100+df_num_bin1[WB_34_S1],df_num_bin1[WB_45_S2]*0x100+df_num_bin1[WB_34_S2])
df_num_bin1['Chip_id_0']=np.where(df_num_bin1[key_site_num]==1,df_num_bin1[WB_23_S1]*0x100+df_num_bin1[WB_12_S1],df_num_bin1[WB_23_S2]*0x100+df_num_bin1[WB_12_S2])
df_num_bin1['mac_low']=(df_num_bin1['Chip_id_1'].map(int) % 0x10000) *0x100+df_num_bin1['Chip_id_0'].map(int) // 0x1000000
코드
상기 2 문제를 가지고있다. 이 예에서는 사이트 0 또는 1이지만 실제로는 2 또는 3 일 수도 있습니다. 나는 일반적인 해결책이 필요하다.2 : 체인 된 색인 경고를 생성합니다.
C:\Anaconda2\lib\site-packages\ipykernel\__main__.py:35: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead