我有两个数据帧,后来又合并为一个。 对于第一个数据帧 dfm ,我有一个字典正在写入数据帧,但出现错误
ValueError: If using all scalar values, you must pass an index
在搜索SO之后,我使用了index = [0]。但是现在,当我合并另一个数据帧时,我在第二个数据帧中获得了两个索引,分别具有0和NaN值。
第一个数据帧:
col=['Target_Tab', 'Source_Tab', 'exp']
dfm = pd.DataFrame(s, columns = ['Target_Tab', 'Source_Tab', 'exp'],index=[0])
print(dfm)
输出:
Target_Tab Source_Tab exp
0 employees employee emp_id = old_emp_id
第二个数据帧
col=['Source_Col', 'Target_Col']
dft = pd.concat([pd.Series(v.split(), name=k) for k, v in d1.items()], axis=1).fillna('')[col]
print(dft)
输出:
Source_Col Target_Col
0 id emp_id
1 last_name l_name
2 first_name f_name
3 email email
4 phone_number phone_number
5 JOB_DATE JOB_DATE
合并后:
dfa = pd.concat([dfm, dft],sort=False)
dfa
输出:
Source_Tab Source_Col Target_Tab Target_Col \
0 employee NaN employees NaN
0 NaN id NaN emp_id
1 NaN last_name NaN l_name
2 NaN first_name NaN f_name
3 NaN email NaN email
4 NaN phone_number NaN phone_number
5 NaN JOB_DATE NaN JOB_DATE
expr
0 emp_id = old_emp_id
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
5 NaN
如何获取一个[0]索引,以使两个数据帧[0]索引值位于同一行,即开头类似这样。
Source_Tab Source_Col Target_Tab Target_Col expr
0 employee id employees emp_id emp_id = old_emp_id
1 NaN last_name NaN l_name Nan
.
.
.
答案 0 :(得分:0)
我明白了。我在axis=1
中添加了参数dfa = pd.concat([dfm, dft],sort=False,axis=1)
被引荐的axis
答案 1 :(得分:0)
我认为您正在寻找外部联接
import pandas as pd
s=["a","b","c"]
col=['Target_Tab', 'Source_Tab', 'exp']
df=pd.DataFrame(s).T
df.columns=col
print(df)
col2=['Source_Col', 'Target_Col']
Source_Col=[1,2,3,4,5]
Target_Col=[1,2,3,4,5]
df2=pd.DataFrame([Source_Col,Target_Col]).T
df2.columns=col2
print(df2)
df.join(df2, how='outer')