我得到了九個不同的數據幀,我想要將它們合併(或合併或更新)爲單個數據幀。這些原始數據幀中的每一個都只包含兩列,以秒爲單位,併爲該觀測值。數據是這樣的:熊貓:連接數據幀併合並相同列的值
Filter_type Time
0 0.0 6333.137168
Filter_type Time
0 0.0 6347.422576
Filter_type Time
0 0.0 7002.406185
Filter_type Time
0 0.0 7015.845717
Sign_pos_X Time
0 11.5 6333.137168
1 25.0 6347.422576
2 25.5 7002.406185
3 38.0 7015.845717
Sign_pos_Y Time
0 -3.0 6333.137168
1 8.0 6347.422576
2 -7.5 7002.406185
3 -0.5 7015.845717
Sign_pos_Z Time
0 1.0 6333.137168
1 1.0 6347.422576
2 1.0 7002.406185
3 7.5 7015.845717
Supplementary_sign_type Time
0 0.0 6333.137168
1 0.0 6347.422576
2 0.0 7002.406185
3 0.0 7015.845717
Time vision_only_sign_type
0 6333.137168 7.0
1 6347.422576 9.0
2 7002.406185 9.0
3 7015.845717 35.0
因爲我希望所有的人都加入到一個單一的數據幀,我試過如下:
df2 = None
for cell in df['Frames']:
if not isinstance(cell, list):
continue
df_ = pd.DataFrame(cell)
if df2 is None:
# first iteration
df2 = df_
continue
df2 = df2.merge(df_, on='Offset', how='outer')
#df2 = df2.join(df_)
#df2.update(df_, join='outer')
df2
的問題是,前四個dataframes具有相同值列的名稱,而其他值不是。因此,結果有三列帶有前綴「FILTER_TYPE」:
+----+-----------------+----------+-----------------+-----------------+-----------------+--------------+--------------+--------------+---------------------------+-------------------------+
| | Filter_type_x | Offset | Filter_type_y | Filter_type_x | Filter_type_y | Sign_pos_X | Sign_pos_Y | Sign_pos_Z | Supplementary_sign_type | vision_only_sign_type |
|----+-----------------+----------+-----------------+-----------------+-----------------+--------------+--------------+--------------+---------------------------+-------------------------|
| 0 | 0 | 6333.14 | nan | nan | nan | 11.5 | -3 | 1 | 0 | 7 |
| 1 | nan | 6347.42 | 0 | nan | nan | 25 | 8 | 1 | 0 | 9 |
| 2 | nan | 7002.41 | nan | 0 | nan | 25.5 | -7.5 | 1 | 0 | 9 |
| 3 | nan | 7015.85 | nan | nan | 0 | 38 | -0.5 | 7.5 | 0 | 35 |
+----+-----------------+----------+-----------------+-----------------+-----------------+--------------+--------------+--------------+---------------------------+-------------------------+
我的問題是:我如何可以強制合併/加入到「FILTER_TYPE」的所有列連接成一個。您可以看到,每行在所有這些列中只有一個值,而其他列爲NaN。 結果應該是這樣的(僅具有一個合併列「FILTER_TYPE」):
+----+----------+--------------+--------------+--------------+---------------------------+-------------------------+---------------+
| | Offset | Sign_pos_X | Sign_pos_Y | Sign_pos_Z | Supplementary_sign_type | vision_only_sign_type | Filter_type |
|----+----------+--------------+--------------+--------------+---------------------------+-------------------------+---------------|
| 0 | 6333.14 | 11.5 | -3 | 1 | 0 | 7 | 0 |
| 1 | 6347.42 | 25 | 8 | 1 | 0 | 9 | 0 |
| 2 | 7002.41 | 25.5 | -7.5 | 1 | 0 | 9 | 0 |
| 3 | 7015.85 | 38 | -0.5 | 7.5 | 0 | 35 | 0 |
+----+----------+--------------+--------------+--------------+---------------------------+-------------------------+---------------+
很不錯的解決方案。同時我也想出了連接第一幀的解決方案。但我真的很喜歡你的減少電話。也會檢查出來! – Matthias