正文:
在處理數(shù)據(jù)時,經(jīng)常會遇到需要操作和轉(zhuǎn)換DataFrame的場景。特別是當(dāng)涉及到從單個或多個字典合成DataFrame,以及合并多個DataFrame時,適當(dāng)?shù)姆椒ê图记煽梢詷O大地簡化程序邏輯并提高代碼的可讀性與效率。此外,數(shù)據(jù)操作過程中,索引的正確管理是保持?jǐn)?shù)據(jù)完整性的關(guān)鍵。本文章將深入探討這些操作,并通過具體案例幫助理解和應(yīng)用。
數(shù)據(jù)合成DataFrame
在Pandas中,DataFrame是一種表格型數(shù)據(jù)結(jié)構(gòu),它包含有序的列,每列可以是不同的值類型(數(shù)值、字符串、布爾值等)。DataFrame既可以作為數(shù)據(jù)的最終形態(tài)被分析,也可以作為數(shù)據(jù)預(yù)處理的中間步驟。下面我們將探討如何從字典列表創(chuàng)建DataFrame。
單個字典列表創(chuàng)建DataFrame
假設(shè)我們有以下字典列表,每個字典代表一個數(shù)據(jù)記錄:
data = [{"name": "Alice", "age": 30, "city": "New York"},
{"name": "Bob", "age": 25, "city": "Paris"},
{"name": "Charlie", "age": 35, "city": "London"}]
我們可以簡單地使用pd.DataFrame()
函數(shù)將其轉(zhuǎn)換成DataFrame:
import pandas as pd
df = pd.DataFrame(data)
print(df)
多個字典列表合并為DataFrame
當(dāng)有兩個字典列表時,我們可能需要將它們合并為一個DataFrame。一個常見的場景是這些字典列表代表不同時間點或不同來源的數(shù)據(jù)。讓我們以兩個字典列表為例:
data1 = [{"name": "Alice", "age": 30, "city": "New York"},
{"name": "Bob", "age": 25, "city": "Paris"}]
data2 = [{"name": "Diana", "age": 22, "city": "Berlin"},
{"name": "Evan", "age": 28, "city": "Toronto"}]
合并這些數(shù)據(jù)時,可以首先將它們轉(zhuǎn)換成兩個DataFrame,然后使用pd.concat()
函數(shù):
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)
df = pd.concat([df1, df2], ignore_index=True)
print(df)
注意,ignore_index=True
參數(shù)使得合并后的DataFrame擁有一個新的整數(shù)索引(索引重新進(jìn)行計算)。
迭代提取值:
例如一個Dataframe你想提取他的值,可以用df.iterrows()
data_A = [{'Col1': 6, 'Col2': 8},{'Col1': 9, 'Col2': 10}]
# 創(chuàng)建DataFrame對象
df_A = pd.DataFrame(data_A)
for index,row in df_A.iterrows():
print(row['Col1'])
其中,index就是他的索引,row就是索引對應(yīng)的那一行數(shù)據(jù); 想取它的值,直接跟json提取一樣的...
索引重置
在對DataFrame進(jìn)行行的刪除或合并后,其索引可能會變得不連續(xù)或混亂。為了恢復(fù)索引的連續(xù)性并去除可能的混亂,可以使用reset_index()
方法。
案例:刪除數(shù)據(jù)行并重置索引
假設(shè)我們有以下DataFrame,并且希望刪除城市為"Paris"的行:
df = pd.DataFrame([{"name": "Alice", "age": 30, "city": "New York"},
{"name": "Bob", "age": 25, "city": "Paris"},
{"name": "Charlie", "age": 35, "city": "London"}])
# 刪除城市為"Paris"的行
df = df[df["city"] != "Paris"]
# 重置索引
df = df.reset_index(drop=True)
print(df)
這里,drop=True
參數(shù)表示拋棄舊的索引列,如果不設(shè)置drop=True
,舊的索引列將會成為DataFrame的一個列。文章來源:http://www.zghlxwxcb.cn/news/detail-834431.html
結(jié)論
可以見到Pandas提供的工具使得從字典列表到DataFrame的轉(zhuǎn)換、多個DataFrame的合并以及索引管理變得簡單高效。掌握這些技能能夠在進(jìn)行數(shù)據(jù)分析和數(shù)據(jù)處理時極大地節(jié)約時間,并使得代碼更加清晰可讀。文章來源地址http://www.zghlxwxcb.cn/news/detail-834431.html
到了這里,關(guān)于數(shù)據(jù)分析Pandas專欄---第三章<Pandas合并list和字典>的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!