Pandas 是 Python 語言的一個擴充程式庫,用于資料分析。
Pandas 是一個開放源碼、BSD 許可的庫,提供高性能、易于使用的資料結構和資料分析工具。
Pandas 名字衍生自術語 "panel data"(面闆資料)和 "Python data analysis"(Python 資料分析)。
Pandas 一個強大的分析結構化資料的工具集,基礎是 Numpy(提供高性能的矩陣運算)。
Pandas 可以從各種檔案格式比如 CSV、JSON、SQL、Microsoft Excel 導入資料。
Pandas 可以對各種資料進行運算操作,比如歸并、再成形、選擇,還有資料清洗和資料加工特征。
Pandas 廣泛應用在學術、金融、統計學等各個資料分析領域。
本質:将csv,xlsx,json,二維json的資料轉換為二維資料結構Pandas DataFrame
對這種結構的資料進行增添删改查
資料分析的基本步驟是:
導入庫:在代碼單元格中導入所需的庫。通常,你需要導入Pandas作為資料處理和分析的主要庫,以及Matplotlib或Seaborn作為圖形庫。
讀取資料:使用Pandas的read_csv()函數或其他相關函數從檔案中讀取資料。
資料清洗和處理:使用Pandas的各種函數和方法對資料進行清洗、處理和轉換。你可以使用Pandas的資料選擇、過濾、排序、填充缺失值等功能來處理資料。
# 選擇特定列
selected_columns = data[['column1', 'column2']]
# 過濾資料
filtered_data = data[data['column1'] > 10]
# 填充缺失值
data['column2'].fillna(0, inplace=True)
資料分析和統計:使用Pandas進行資料分析和統計分析。Pandas提供了各種函數和方法來計算統計名額、聚合資料、建立透視表等。
# 計算平均值
mean_value = data['column1'].mean()
# 統計摘要資訊
summary_stats = data.describe()
# 建立透視表
pivot_table = data.pivot_table(values='column1', index='column2', aggfunc='mean')
繪制圖形:使用Matplotlib或Seaborn等庫繪制圖形。這些庫提供了豐富的繪圖函數和方法,可以建立折線圖、柱狀圖、散點圖、箱線圖等。
# 繪制折線圖
plt.plot(data['column1'], data['column2'])
plt.xlabel('Column 1')
plt.ylabel('Column 2')
plt.title('Line Plot')
# 繪制柱狀圖
sns.barplot(x='column1', y='column2', data=data)
plt.xlabel('Column 1')
plt.ylabel('Column 2')
plt.title('Bar Plot')
plt.show()
挖掘資料價值
Pandas DataFrame 是一種二維資料結構,如二維數組或包含行和列的表格。
建立Pandas DataFrame
以json格式{name[str]: value[arr]}
import pandas as pd #改名pandas
data = {
"calories": [420, 380, 390],
"duration": [50, 40, 45]
}
#load data into a DataFrame object:
df = pd.DataFrame(data)
print(df)
可見data是個json對象;裡面是另外一個json,這個json的value是數組
pd.DataFrame(data) 指的是建立Pandas DataFrame*對象
Pandas DataFrame對象的長相是鄰接矩陣,行索引預設0,1,2,列索引為json[i]的值
json[i]的嵌套[j]按列展開
讀取csv,裝換為Pandas DataFrame
pandas.read_csv(filepath_or_buffer, *, sep=_NoDefault.no_default, delimiter=None, header='infer', names=_NoDefault.no_default, index_col=None, usecols=None, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, skipfooter=0, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=None, infer_datetime_format=_NoDefault.no_default, keep_date_col=False, date_parser=_NoDefault.no_default, date_format=None, dayfirst=False, cache_dates=True, iterator=False, chunksize=None, compression='infer', thousands=None, decimal='.', lineterminator=None, quotechar='"', quoting=0, doublequote=True, escapechar=None, comment=None, encoding=None, encoding_errors='strict', dialect=None, on_bad_lines='error', delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None, storage_options=None, dtype_backend=_NoDefault.no_default)[source]
df = pd.read_csv('data.csv')
效果如圖:
讀取xlsx,轉化為Pandas DataFrame
pd.read_excel(path, sheet_name=0, header=0, names=None, index_col=None,
usecols=None, squeeze=False,dtype=None, engine=None,
converters=None, true_values=None, false_values=None,
skiprows=None, nrows=None, na_values=None, parse_dates=False,
date_parser=None, thousands=None, comment=None, skipfooter=0,
convert_float=True, **kwds)
使用常用參數就行,pycham會提示
效果圖:
可見直接列印預設顯示前5條,to_string()列印全部
以json格式另外一種
df = pd.DataFrame(data),注意json是三維json格式
對象資料查詢
看名認識函數功能
df.head() #預設5條
df.head(10)
df.tail()
df.info()
df.to_string() #全部裝換為str
按行按列按索引名查詢見:
文檔教程
https://wavedatalab.github.io/datawithpython/munge.html
增添删改查
見文檔:
pandas教學文檔
https://pandas.pydata.org/docs/user_guide/index.html
菜鳥教程pandas
https://www.runoob.com/pandas/pandas-dataframe.html