我有以下数据框:
import pandas as pd
pd.DataFrame(first_list).set_index(0).groupby(df.index).apply(lambda x: x.values.tolist()).tolist()
#->
[[[45.4, 9.1]],
[[45.5, 9.1], [45.4, 9.2], [45.4, 9.2]],
[[45.4, 9.1], [45.4, 9.1], [45.4, 9.1]]]
我想创建一个新的数据框(df3),根据发票将两者合并。问题在于,发票编号在df2 ['Ref']中并不总是“完全匹配”,而有时却是“部分匹配”。因此,“发票”上的联接不会提供所需的输出,因为它不会复制发票数据。
我尝试了以下代码:
df1 = pd.DataFrame({'Invoice': ['3 HongKong', 'A Africa', 'A GhanaLimited', 'AfricaGroup'],
'Currency': ['EUR', 'EUR', 'EUR', 'USD']})
df2 = pd.DataFrame({'Ref': ['3 Hong', 'A Africa', 'A Ghana', 'Africa Group'],
'Type': ['01', '03', '04', '02'],
'Amount': ['Live', 'No', 'Live', 'No'],
'Comment': ['bla', 'bla', 'bla', 'bla']})
print(df1)
print(df2)
Invoice Currency
0 3 HongKong EUR
1 A Africa EUR
2 A GhanaLimited EUR
3 AfricaGroup USD
Ref Type Amount Comment
0 3 Hong 01 Live bla
1 A Africa 03 No bla
2 A Ghana 04 Live bla
3 Africa Group 02 No bla
但这给了我错误:
IndexError:单个位置索引器超出范围
这个问题可以解决吗?