gpt4 book ai didi

python - 如何使用 pandas 从 csv 中读取一行,进行 VLOOKUP 操作并将结果保存到另一个文件中?

转载 作者:太空宇宙 更新时间:2023-11-03 14:13:10 26 4
gpt4 key购买 nike

从此question ,我找到了如何使用 pandas 进行 VLOOKUP。因此,按照 jezrael 的建议,我这样做了:

df1 = pd.read_csv('df1.csv', names=['a','b'])
print (df1)
a b
0 Time 07:03:52
1 EmployeeID 98766
2 EmployeeName Joao
3 Time 08:03:52
4 EmployeeID 98765
5 EmployeeName Mary

#for columns names created from file2
df2 = pd.read_csv('df2.csv')
c = df2.columns.str.strip().tolist()
print (c)
['EmployeeID', 'EmployeeName', 'Time']

#or defined in list
#c = ['Time', 'EmployeeID', 'EmployeeName']

g = df1.groupby('a').cumcount()
df1 = df1.set_index([g,'a'])['b'].unstack().reindex(columns=c)
print (df1)

我得到了这个:

a EmployeeID EmployeeName      Time
0 98766 Joao 07:03:52
1 98765 Mary 08:03:52

现在,我想了解如何获取一个 .csv 文件,该文件在行中而不是 2 列中包含 df1 的所有信息,并将其转换为 2 列的临时文件,这样我就可以读取它并继续使用 VLOOKUP 查找 df3。如下例所示:

现在,假设 df1.csvdf2.csv 有其他值:

df1.csv

Symbol, A;Goal,1.07;Range,0.72 - 1.07;Return over time,15.91%;;
Symbol, B;Goal,1.06;Range,0.5 - 1.32;Return over time,9.91%;Maturity,5;Total,13.555

df2.csv

Return_over_time,Maturity,Symbol,Goal,Range,Total

我想得到与上面相同的结果,但是从df1的每一行获取信息。所以我可以得到这样的结果:

df3.csv

Symbol  Return_over_time   Goal   Range        Maturity   Total
A 15.91% 1.07 0.72 - 1.07
B 9.91% 1.06 0.5 - 1.32 5 13.555

谢谢!

最佳答案

首先创建 DataFrame - header=None 表示没有 csv header :

df1 = pd.read_csv('df1.csv', sep=';',header=None)

通过 stack reshape 为系列split通过正则表达式 '\s*,\s* 表示逗号之间有双零或多个空格:

df1 = df1.stack().str.split('\s*,\s*', expand=True)
print (df1)
0 1
0 0 Symbol A
1 Goal 1.07
2 Range 0.72 - 1.07
3 Return over time 15.91%
1 0 Symbol B
1 Goal 1.06
2 Range 0.5 - 1.32
3 Return over time 9.91%
4 Maturity 5

通过 reset_index 删除第二级并添加新级别 set_index ,最后一次 reshape unstack :

df1 = df1.reset_index(level=1, drop=True).set_index(0, append=True)[1].unstack()
print (df1)
0 Goal Maturity Range Return over time Symbol Total
0 1.07 None 0.72 - 1.07 15.91% A None
1 1.06 5 0.5 - 1.32 9.91% B 13.555

关于python - 如何使用 pandas 从 csv 中读取一行,进行 VLOOKUP 操作并将结果保存到另一个文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48359925/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com