목록에서 데이터 프레임에 열 추가
다음과 같은 일부 열이있는 데이터 프레임이 있습니다.
A B C
0
4
5
6
7
7
6
5
A의 값의 가능한 범위가 0 내지 7 만한다 .
또한 다음과 같은 8 개의 요소 목록이 있습니다.
List=[2,5,6,8,12,16,26,32] //There are only 8 elements in this list
A 열의 요소가 n 이면 List 의 n 번째 요소를 새 열에 삽입해야합니다 ( 예 : 'D').
전체 데이터 프레임을 반복하지 않고 한 번에 어떻게 할 수 있습니까?
결과 데이터 프레임은 다음과 같습니다.
A B C D
0 2
4 12
5 16
6 26
7 32
7 32
6 26
5 16
참고 : 데이터 프레임은 방대하며 반복이 마지막 옵션입니다. 그러나 필요한 경우 dict와 같은 다른 데이터 구조에서 'List'의 요소를 정렬 할 수도 있습니다.
IIUC, (불행히도 이름이 지정됨) List
를으로 ndarray
만들면 자연스럽게 색인화 할 수 있습니다.
>>> import numpy as np
>>> m = np.arange(16)*10
>>> m[df.A]
array([ 0, 40, 50, 60, 150, 150, 140, 130])
>>> df["D"] = m[df.A]
>>> df
A B C D
0 0 NaN NaN 0
1 4 NaN NaN 40
2 5 NaN NaN 50
3 6 NaN NaN 60
4 15 NaN NaN 150
5 15 NaN NaN 150
6 14 NaN NaN 140
7 13 NaN NaN 130
여기에서 새로운 m
을 만들었지 만을 사용 m = np.asarray(List)
하면 똑같은 방식으로 작동합니다.의 값은 df.A
의 적절한 요소를 선택합니다 m
.
이전 버전 의을 numpy
사용하는 경우 m[df.A.values]
대신 사용해야 할 수 있습니다 . 과거 numpy
에는 다른 사용자와 잘 어울리지 않았고 일부 리팩토링으로 pandas
인해 두통이 발생했습니다. 이제 상황이 개선되었습니다.
목록을 직접 할당하십시오.
df['new_col'] = mylist
대안
목록을 시리즈 또는 배열로 변환 한 다음 할당합니다.
se = pd.Series(mylist)
df['new_col'] = se.values
또는
df['new_col'] = np.array(mylist)
@sparrow의 훌륭한 솔루션을 개선하는 솔루션입니다.
하자 DF 데이터 집합이 될, 그리고 myList에 당신이 dataframe에 추가 할 값 목록을.
새 열을 간단히 new_column 이라고 부르고 싶다고 가정 해 보겠습니다.
First make the list into a Series:
column_values = pd.Series(mylist)
Then use the insert function to add the column. This function has the advantage to let you choose in which position you want to place the column. In the following example we will position the new column in the first position from left (by setting loc=0)
df.insert(loc=0, column='new_column', value=column_values)
First let's create the dataframe you had, I'll ignore columns B and C as they are not relevant.
df = pd.DataFrame({'A': [0, 4, 5, 6, 7, 7, 6,5]})
And the mapping that you desire:
mapping = dict(enumerate([2,5,6,8,12,16,26,32]))
df['D'] = df['A'].map(mapping)
Done!
print df
Output:
A D
0 0 2
1 4 12
2 5 16
3 6 26
4 7 32
5 7 32
6 6 26
7 5 16
참고URL : https://stackoverflow.com/questions/26666919/add-column-in-dataframe-from-list
'IT박스' 카테고리의 다른 글
Nexus 5에는 어떤 USB 드라이버를 사용해야합니까? (0) | 2020.11.06 |
---|---|
신속한 presentViewController (0) | 2020.11.06 |
"선택된 파일 없음"을 변경합니다. (0) | 2020.11.06 |
iOS 7에서 UITableView 셀을 구분 기호에 줄 바꿈이 없도록 만드는 방법이 있습니까? (0) | 2020.11.06 |
Windows Forms에서 제목 표시 줄 제거 (0) | 2020.11.06 |