반응형
Pandas DataFrame 헤더에서 공백을 제거하려면 어떻게해야합니까?
일부 열 머리글에 추가 공백이있는 Excel 파일의 데이터를 구문 분석하고 있습니다.
결과 데이터 프레임의 열을 확인하면 다음과 같이됩니다.
df.columns
결과는 다음과 같습니다.
Index(['Year', 'Month ', 'Value'])
결과적으로 나는 실행할 수 없습니다
df["Month"]
"Month"가 아니라 "Month"를 요청했듯이 열을 찾을 수 없다는 것을 알려주기 때문입니다.
내 질문은 열 머리글에서 원하지 않는 공백을 어떻게 제거 할 수 있습니까?
rename
메소드에 기능을 부여 할 수 있습니다 . 이 str.strip()
방법은 원하는 것을 수행해야합니다.
In [5]: df
Out[5]:
Year Month Value
0 1 2 3
[1 rows x 3 columns]
In [6]: df.rename(columns=lambda x: x.strip())
Out[6]:
Year Month Value
0 1 2 3
[1 rows x 3 columns]
.str.strip
최신 버전을 사용하는 경우 이제 열만 호출 할 수 있습니다 .
In [5]:
df = pd.DataFrame(columns=['Year', 'Month ', 'Value'])
print(df.columns.tolist())
df.columns = df.columns.str.strip()
df.columns.tolist()
['Year', 'Month ', 'Value']
Out[5]:
['Year', 'Month', 'Value']
타이밍
In[26]:
df = pd.DataFrame(columns=[' year', ' month ', ' day', ' asdas ', ' asdas', 'as ', ' sa', ' asdas '])
df
Out[26]:
Empty DataFrame
Columns: [ year, month , day, asdas , asdas, as , sa, asdas ]
%timeit df.rename(columns=lambda x: x.strip())
%timeit df.columns.str.strip()
1000 loops, best of 3: 293 µs per loop
10000 loops, best of 3: 143 µs per loop
그래서 str.strip
~ 2X 더 빠릅니다. 더 큰 dfs에서 더 잘 확장 될 것으로 기대합니다.
CSV 형식을 사용하여 Excel에서 내보내고 Pandas DataFrame으로 읽는 경우 다음을 지정할 수 있습니다.
skipinitialspace=True
when calling pd.read_csv
.
From the documentation:
skipinitialspace : bool, default False
Skip spaces after delimiter.
반응형
'programing' 카테고리의 다른 글
bash 스크립트에서 ping을 사용하여 호스트 가용성 확인 (0) | 2020.11.23 |
---|---|
Angularjs-DOM이로드 될 때까지 콘텐츠 숨기기 (0) | 2020.11.23 |
Font Awesome 아이콘을 'fa-5x'보다 크게 만들 수 있습니까? (0) | 2020.11.23 |
노드 fs를 사용하여 aws s3 버킷에서 파일 읽기 (0) | 2020.11.23 |
ValidationError :“expiresInMinutes”는 NodeJs JsonWebToken이 허용되지 않습니다. (0) | 2020.11.23 |