PAT乙級真題 1006 換個格式輸出整數
阿新 • • 發佈:2021-01-24
一、pandas
pandas 是基於NumPy 的一種工具,該工具是為解決資料分析任務而建立的。Pandas 納入了大量庫和一些標準的資料模型,提供了高效地操作大型資料集所需的工具。pandas提供了大量能使我們快速便捷地處理資料的函式和方法。你很快就會發現,它是使Python成為強大而高效的資料分析環境的重要因素之一。
二、if條件判斷DataFrame是否為空
dataframe.empty加if條件判斷檔案是否為空,如果返回的dataframe為空,可能導致某些邏輯錯誤。
data = pd.read_csv(filename, skiprows=1, header=None, error_bad_lines=False) if data.empty: do empty else: do not empty
data = pd.read_csv(filename, skiprows=1, header=None, error_bad_lines=False)
if not data.empty:
do not empty
else:
do empty
三、DataFrame取某一列
# one method
dataframe[b][dataframe[a]==1].values[0]
# two method
dataframe[dataframe[a]==1][b].values[0]
三、DataFrame按行按列遍歷的方式
iteritems(): 按列遍歷,將DataFrame的每一列迭代為(列名, Series)對,可以通過row[index]對元素進行訪問
iterrows(): 按行遍歷,將DataFrame的每一行迭代為(index, Series)對,可以通過row[name]對元素進行訪問
itertuples(): 按行遍歷,將DataFrame的每一行迭代為元祖,可以通過row[name]對元素進行訪問,比iterrows()效率要高
>>> import pandas as pd >>> >>> pdd = [{'c1':10, 'c2':100}, {'c1':11, 'c2':111}, {'c1':22, 'c2':222}] >>> >>> print(type(pdd)) <class 'list'> >>> >>> df = pd.DataFrame(pdd) >>> >>> print(df) c1 c2 0 10 100 1 11 111 2 22 222 >>> print(type(df)) <class 'pandas.core.frame.DataFrame'>
按列遍歷iteritems()用法:
# index--列名
>>> for index, row in df.iteritems():
... print(index)
...
c1
c2
# row--某一列, row[0]某一列的第一行
>>> for index, row in df.iteritems():
... print(row[0], row[1], row[2])
...
10 11 22
100 111 222
按行遍歷iterrows()用法:
# index-行號
>>> for index, row in df.iterrows():
... print(index)
...
0
1
2
# 某一行通過列名name訪問對應的元素
>>> for index, row in df.iterrows():
... print(row['c1'], row['c2'])
...
10 100
11 111
22 222
按行遍歷itertuples()用法:
# getattr(row, 'name')得到某行的元素
>>> for row in df.itertuples():
... print(getattr(row, 'c1'), getattr(row, 'c2'))
...
10 100
11 111
22 222