我目前正在使用外连接合并2个数据帧,但在合并之后,我看到所有行都是重复的,即使我合并的列包含相同的值.详细地:
list_1 = pd.read_csv('list_1.csv')
list_2 = pd.read_csv('list_2.csv')
merged_list = pd.merge(list_1 , list_2 , on=['email_address'], how='inner')
Run Code Online (Sandbox Code Playgroud)
具有以下输入和结果:
LIST_1:
email_address, name, surname
john.smith@email.com, john, smith
john.smith@email.com, john, smith
elvis@email.com, elvis, presley
Run Code Online (Sandbox Code Playgroud)
list_2:
email_address, street, city
john.smith@email.com, street1, NY
john.smith@email.com, street1, NY
elvis@email.com, street2, LA
Run Code Online (Sandbox Code Playgroud)
merged_list:
email_address, name, surname, street, city
john.smith@email.com, john, smith, street1, NY
john.smith@email.com, john, smith, street1, NY
john.smith@email.com, john, smith, street1, NY
john.smith@email.com, john, smith, street1, NY
elvis@email.com, elvis, presley, street2, LA
elvis@email.com, elvis, presley, street2, LA
Run Code Online (Sandbox Code Playgroud)
我的问题是,不应该这样吗?
merged_list(我希望如何:D): …
我正在尝试合并两个包含相同键列的数据帧.其他一些列也有相同的标题,虽然不是相同数量的行,并且在合并这些列之后,使用postscript _x,_y等对原始标题进行"复制".
有谁知道如何让pandas删除下面示例中的重复列?
这是我的python代码:
import pandas as pd
holding_df = pd.read_csv('holding.csv')
invest_df = pd.read_csv('invest.csv')
merge_df = pd.merge(holding_df, invest_df, on='key', how='left').fillna(0)
merge_df.to_csv('merged.csv', index=False)
Run Code Online (Sandbox Code Playgroud)
CSV文件包含以下内容:
左数据帧的第一行(holding_df)
key, dept_name, res_name, year, need, holding
DeptA_ResA_2015, DeptA, ResA, 2015, 1, 1
DeptA_ResA_2016, DeptA, ResA, 2016, 1, 1
DeptA_ResA_2017, DeptA, ResA, 2017, 1, 1
...
Run Code Online (Sandbox Code Playgroud)
右数据帧(invest_df)
key, dept_name, res_name, year, no_of_inv, inv_cost_wo_ice
DeptA_ResA_2015, DeptA, ResA, 2015, 1, 1000000
DeptA_ResB_2015, DeptA, ResB, 2015, 2, 6000000
DeptB_ResB_2015, DeptB, ResB, 2015, 1, 6000000
...
Run Code Online (Sandbox Code Playgroud)
合并结果
key, dept_name_x, res_name_x, year_x, …Run Code Online (Sandbox Code Playgroud) 我有两个数据帧df1和df2.它们都包含时间序列数据,因此df1和df2中的某些日期可能相互交叉,其余日期则不相交.我的要求是对两个数据帧的操作,用df2中的值替换df1中的值,df2中的索引值在df2中不存在,并且添加df2中存在的索引的值而不是df1中的索引值.请考虑以下示例:
df1:
A B C D
0 A0 BO C0 D0
1 A1 B1 C1 D1
2 A2 B2 C2 D2
3 A3 B3 C3 D3
df2:
A B C E
1 A4 B4 C4 E4
2 A5 B5 C5 E5
3 A6 B6 C6 E6
4 A7 B7 C7 E7
result df:
A B C D E
0 A0 BO C0 D0 Nan
1 A4 B4 C4 D4 E4
2 A5 B5 C5 D5 E5
3 A6 B6 C6 …Run Code Online (Sandbox Code Playgroud) 我的问题与Pandas Merge 密切相关- 如何避免重复列但不相同.
我想连接三个数据帧中不同的列.数据框有一个列id,有些列是相同的:Ex.
DF1
id place name qty unit A
1 NY Tom 2 10 a
2 TK Ron 3 15 a
3 Lon Don 5 90 a
4 Hk Sam 4 49 a
Run Code Online (Sandbox Code Playgroud)
DF2
id place name qty unit B
1 NY Tom 2 10 b
2 TK Ron 3 15 b
3 Lon Don 5 90 b
4 Hk Sam 4 49 b
Run Code Online (Sandbox Code Playgroud)
DF3
id place name qty unit C D
1 NY …Run Code Online (Sandbox Code Playgroud)