pandas 데이터 프레임에는 다음과 같은 열이 있습니다.
+----------------------------------------------+
| carContactTel |
+----------------------------------------------+
| [] |
| ['tel 432424'] |
| ['tel 84958358'] |
| ['tel 5434645', 'tel 534535', 'tel 3242342'] |
+----------------------------------------------+
따라서 일부 목록 요소는 비어 있습니다. 나는 이것을 새로운 열로 나누려고합니다 : tel1,tel2,tel3,tel4,tel5
. 목록이 해당 열의 값보다 너무 짧으면 비어 있어야합니다.
내가 찾은 솔루션을 기반으로 한 마지막 시도 :
carContactDF = pd.DataFrame(carContactDF["carContactTel"].to_list(), columns=["carContactTel1", "carContactTel2", "carContactTel3", "carContactTel4", "carContactTel5"])
오류는 항상 목록의 모양에 관한 것입니다. 빈 목록을 대체하려고 시도했지만 'Nan'
작동하지 않았습니다.
목록은 다른 파이썬 스크립트로 올바르게 생성되므로 오류가 없습니다.
오류:
ValueError : 5 개 열 전달, 전달 된 데이터에 3 개 열 포함
현재 3 개의 항목이 최상위이지만 스크립트는 5 개의 요소가있는 목록 항목이있는 더 큰 데이터 세트에서 실행됩니다.
carContactTel
열 에서 새 데이터 프레임을 만든 다음 DataFrame.set_axis
+ DataFrame.add_prefix
를 사용 하여 요구 사항에 따라 열을 준수하고 마지막으로 사용 DataFrame.fillna
하여 NaN
값을 빈 문자열로 바꿉니다.
df1 = pd.DataFrame(carContactDF['carContactTel'].tolist())
df1 = (
df1.set_axis(df1.columns + 1, 1).add_prefix('carContactTel')
.fillna('').replace('^tel\s*', '', regex=True)
)
결과:
print(df1)
carContactTel1 carContactTel2 carContactTel3
0
1 432424
2 84958358
3 5434645 534535 3242342
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다