簡體   English   中英

如何使用 pandas 合並和重新采樣兩個雜亂的數據集

[英]How to merge and resample two messy datasets with pandas

我有兩個具有深度范圍和變量的鑽孔數據集,我想重新采樣並合並在一起。

數據集 1 具有深度范圍,例如 2m 到 3m,每個范圍都有變量。 我采用了這些范圍並使用 pandas df.explode將它們分解為單獨的間隔

數據集 1:

Depth_From  Depth_To    Variable_1
0           1           x
2           3           x
4           5           x

變成這樣:

Depth_Expl  Variable_1
0           x
1           x
2           x
3           x
...

第二個數據集具有相似的范圍,但它們不像第一個數據集那樣按深度順序排列,並且在某些情況下深度范圍也重疊。

我想將這些深度從最低到最高重新組織,並將它們與之前的數據集類似地分解。 由於重疊范圍而重疊的任何變量我只想取平均值,並且對於每個 1m 的單個深度間隔有 1 個變量結果。 不知道如何 go 關於這個。

數據集 2:

Depth_From  Depth_To    Variable_2
3           6           x
0           2           x
2           3           x
7           8           x

總的來說,我正在嘗試重塑和合並兩個數據集,如下所示:

Depth_Expl  Variable_1  Variable_2
0           x           x
1           x           x
2           x           x
3           x           x

每個數據集都以 1m 為基礎重新采樣,每個變量有 1 個答案。 任何指針將不勝感激。

根據您期望的 output,我猜您想:

  1. Depth_FromDepth_To列折疊成一個名為Depth_Expl的列
  2. 根據Depth_Expl列組合兩個數據框

如果是這樣,您可以使用pd.melt()代替pd.explode並使用pd.merge()來組合表格。

嘗試這個:

# Collapse Depth_From and Depth_To columns
df1 = pd.melt(df1, id_vars = 'Variable_1', var_name = 'col_names', value_name='Depth_Expl').drop(columns=['col_names'])
df2 = pd.melt(df2, id_vars = 'Variable_2', var_name = 'col_names', value_name='Depth_Expl').drop(columns=['col_names'])

# Combine two dataframes
df_merge = pd.merge(df1, df2, on='Depth_Expl', how='outer').sort_values('Depth_Expl')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM