我正在用零件号从网站上划掉价格。 逻辑是:
例如,下面是零件号的初始列表(输入):
b123
nadsf
功率
韦奥阿
他们各自属于一个公司:
Part # Company A B C D
b123 1.5
nadsf 3.4
ower 47
weoa 33
现在csv的输出是:
0
0 1.5
1 0
2 0
3 0
0 0
1 3.4
2 0
3 0
0 0
1 0
2 33
3 0
0 0
1 0
2 0
3 47
0 0
1 0
2 0
3 0
我只想要一张单子而不是5张;所需输出为:
0 1.5
1 3.4
2 33
3 47
我不知道该怎么做
感谢您的帮助/建议
请看下面我的代码:
import pandas as pd
df = pd.read_excel(r'C:\Users\212677036\Documents\Copy of MIC Parts Review.xlsx')
PN = pd.DataFrame(df, columns=['Product code'])
i = 0
Total_rows = PN.shape[0]
partnumlist = []
partnumlist1 = []
partnumlist2 = []
partnumlist3 = []
partnumlist4 = []
partnumlist5 = []
while i < Total_rows:
data = {"partOptionFilter": {"PartNumber": PN.iloc[i, 0], "AlternativeOemId": "17155"}}
r = requests.post('https://www.partsfinder.com/Catalog/Service/GetPartOptions', json=data).json()
partnumlist.append(r['Data']['PartOptions'][0]['YourPrice'])
data1 = {"partOptionFilter": {"PartNumber": PN.iloc[i, 0], "AlternativeOemId": "17475"}}
r1 = requests.post('https://www.partsfinder.com/Catalog/Service/GetPartOptions', json=data1).json()
partnumlist1.append(r1['Data']['PartOptions'][0]['YourPrice'])
data2 = {"partOptionFilter": {"PartNumber": PN.iloc[i, 0], "AlternativeOemId": "16880"}}
r2 = requests.post('https://www.partsfinder.com/Catalog/Service/GetPartOptions', json=data2).json()
partnumlist2.append(r2['Data']['PartOptions'][0]['YourPrice'])
data3 = {"partOptionFilter": {"PartNumber": PN.iloc[i, 0], "AlternativeOemId": "47221"}}
r3 = requests.post('https://www.partsfinder.com/Catalog/Service/GetPartOptions', json=data3).json()
partnumlist3.append(r3['Data']['PartOptions'][0]['YourPrice'])
data4 = {"partOptionFilter": {"PartNumber": PN.iloc[i, 0], "AlternativeOemId": "17045"}}
r4 = requests.post('https://www.partsfinder.com/Catalog/Service/GetPartOptions', json=data4).json()
partnumlist4.append(r4['Data']['PartOptions'][0]['YourPrice'])
data5 = {"partOptionFilter": {"PartNumber": PN.iloc[i, 0], "AlternativeOemId": "17055"}}
r5 = requests.post('https://www.partsfinder.com/Catalog/Service/GetPartOptions', json=data5).json()
partnumlist5.append(r5['Data']['PartOptions'][0]['YourPrice'])
i=i+1
list_of_dataframes = [pd.DataFrame(partnumlist),pd.DataFrame(partnumlist1),
pd.DataFrame(partnumlist2), pd.DataFrame(partnumlist3),
pd.DataFrame(partnumlist4), pd.DataFrame(partnumlist5)]
pd.concat(list_of_dataframes).to_csv(r'C:\Users\212677036\Documents\output25.csv')
您可以使用布尔索引删除所有零值并重置索引,使其从0计数到N-1。您必须保存结果 在将变量保存到cvs之前。你可以这样做:
这将为您提供所需的输出:
为了提供更多的细节,输出csv文件第一行中的
0
是DataFrame的列名。Pandas默认使用0..M
(M=#of columns)的范围索引,但不提供给DataFrame构造函数因此,
concatenated[0]
选择数据帧中的第一列,concatenated[0] == 0
检查列中的每个值是否等于0
,从而生成一系列True
或False
值,然后可以使用这些值对数据进行选择性索引我假设您得到的当前CSV输出遵循0的模式。您可以对输出CSV或要保存为CSV的数据帧应用简单的过滤操作
例如,您的输出CSV被转换为数据帧df
df=pd.concat(数据帧列表)#假设这是您的输出csv数据帧
我没有看到df的列名。您可以选择0向第二列添加列名。一旦你有了这个
df=df[~(df['col']==0])]
这将删除第二列中0的所有行(因为~),并得到所需的结果
相关问题 更多 >
编程相关推荐