[英]Pandas enumerate columns unexpected behavior
我正在使用 python 從一些帶有表格的 PDF 中提取表格。 然后將每個表轉換為 Pandas DataFrame,我必須對它們進行一些分析。 我想迭代每一列以查看它們是否包含特定的字符串,但我注意到一個特定的 df 出現意外行為(至少我無法理解發生了什么)。
這是使用 df.columns 獲得的df.columns
的列( df
是 DataFrame 的名稱):
Index(['cognome:xxxxnome:xxxxxprovenienza: esterno\r\rcodice fiscale: xxxxx\rdata valutazione neuropsicologica: 25/03/2021\rdata di nascita: 08/09/1955\retà (anni compiuti): 65\rsesso: m\rnumero anni di scolarità: 13', 'unnamed: 0'], dtype='object')
所以,從我在這里看到的,第 0 列的名稱應該是
'cognome:xxxxnome:xxxxxprovenienza: esterno\r\rcodice fiscale: xxxxx\rdata valutazione neuropsicologica: 25/03/2021\rdata di nascita: 08/09/1955\retà (anni compiuti): 65\rsesso: m\rnumero anni di scolarità: 13'
我不明白的是,如果我嘗試遍歷df
的列,會發生以下情況:
for i, col in enumerate(list(df.columns)):
print(f'{i}-th loop, column name = {col}')
Output:
numero anni di scolarità: 13ogica: 25/03/2021xxxxprovenienza: esterno 1-th loop, column name = unnamed: 0
所以這是我的問題:
col
打印值與df.columns
的第 0 個元素不同?有關 df 的更多詳細信息:
<class 'pandas.core.frame.DataFrame'>
Int64Index: 0 entries
Data columns (total 2 columns):
# Column
Non-Null Count Dtype
--- ------
-------------- -----
numero anni di scolarità: 13 0 non-null float64
1 unnamed: 0
0 non-null float64
dtypes: float64(2)
memory usage: 0.0 bytes
我正在使用帶有 Pandas 版本 1.2.0 的 Jupyter Notebbok
問題在於您的列名已滿的回車 \r 。 打印字符串時,每次看到 \r 時,都會從行首開始,逐個字符地覆蓋。 所以索引 0 被打印出來,但隨后被覆蓋。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.