dataframe我能正确提取列表中的纯值吗?

2024-06-23 19:36:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前是一个Python自学初学者。在

for index, row in df_price.iterrows():                    
    prod_weight = prod_weight = prod_data.loc[prod_data['sku'] == row['sku']]['weight'].item

----------结果-----------------------------------------

^{pr2}$

我想要的结果是:

1.0
0.2
0.1
0.1
0.1
0.1
0.1
...
0.5
0.6
0.3

所以,我修改了代码如下。在

prod_weight = prod_data.loc[prod_data['sku'] == row['sku']]['weight'].item()

-----------结果--------------------------------

1.0
0.2
0.1
0.1
0.1
0.1
0.1
...
0.5
0.6
0.3

Traceback (most recent call last): File "D:/python_project/price_reviser/price_reviser.py", line 58, in prod_weight = prod_data.loc[prod_data['sku'] == row['sku']]['weight'].item() File "C:\Users\tlsdy\AppData\Local\Programs\Python\Python36\lib\site-packages\pandas\core\base.py", line 719, in item return self.values.item() ValueError: can only convert an array of size 1 to a Python scalar

所以我再次修改了代码,如下所示。在

prod_weight = prod_data.loc[prod_data['sku'] == row['sku']]['weight'].values

-------------result--------------------------------
[1.0]
[0.2]
[0.1]
[0.1]
[0.1]
[0.1]
[0.1]
...
[0.5]
[0.6]
[0.3]

所以我再次修改了代码,如下所示。在

prod_weight = re.sub('\[|''\]|''\'|', '', str(prod_data.loc[prod_data['sku'] == row['sku']]['weight'].values))

-----------结果-------

1.
0.2
0.1
0.1
0.1
0.1
0.1
...
0.5
0.6
0.3

但是

1.0 --> 1.
2.0 --> 2.

如何才能正确提取? 如何才能正确提取? 如何才能正确提取? 如何才能正确提取? 如何才能正确提取?在


Tags: 代码inpydatalineproditemprice
1条回答
网友
1楼 · 发布于 2024-06-23 19:36:39
for index, row in df_price.iterrows():
    try:        
        prod_weight= prod_data.loc[prod_data['sku'] == row['sku']]['weight'].item()
    except:
        prod_weight= prod_data.loc[prod_data['sku'] == row['sku']]['weight']

试试这个。在

错误ValueError: can only convert an array of size 1 to a Python scalar是因为.item()只对series/dataframe数据类型有效。如果你想做什么标量.item()它将抛出此错误

相关问题 更多 >

    热门问题