我有 2 個文檔,一個包含特定數字,另一個文檔包含數字引用以及由管道分隔的該數字的定義。然而,第一個文檔有時包含多個數字,這意味著它比另一個文檔有更多的列,而另一個文檔只有 2 個。我嘗試將它與“on”參數合并,通過“for 循環”更改列名稱"并在每次迭代后再次保存合并的文檔。問題是它刪除了沒有指定列數的行。有限制_n1-16 等列。def merge_res(number, last_iter=None): res_n = f"restrict_n{number}" res_d = f"restrict_d{number}" if number == 1: restrict_desc_csv = pd.read_csv( RESTRICTION_DESC, sep="|", delimiter="|", header=None, names=["restrict_n1", "restrict_d1",], dtype=object, ) merge = restrict_csv.merge(restrict_desc_csv, on="restrict_n1") else: restrict_desc_csv = pd.read_csv( RESTRICTION_DESC, sep="|", delimiter="|", header=None, names=[res_n, res_d], dtype=object, ) merge = last_iter.merge(restrict_desc_csv, on=res_n) return mergelast_iter = merge_res(1)for i in range(2, 15): last_iter = merge_res(i, last_iter)
1 回答

慕田峪4524236
TA貢獻1875條經驗 獲得超5個贊
我不會給出完整的代碼,因為編寫起來并不難。只需按照您在問題中所描述的方式編寫,只需指定參數 how (即pandas.DataFrame.merge)。默認情況下inner
會導致丟失行,因為它僅合并兩個數據幀中都存在的行。根據您對問題的描述,您需要進行設置how='left'
。
添加回答
舉報
0/150
提交
取消