首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修正“值的长度(1)与索引(15)的长度相匹配”

如何修正“值的长度(1)与索引(15)的长度相匹配”
EN

Stack Overflow用户
提问于 2022-05-22 15:07:57
回答 2查看 130关注 0票数 0

工作流=>

  • 读取CSV文件并获取单元价格列数据
  • 转换列数据价格,并创建一个名为“
  • ”的新列,将输出保存为xlsx

示例:

代码语言:javascript
复制
Unit Price
----------
330
350
380

I want to convert this data 

Fabric
------
Card
Combed
Viscos

我的代码:

代码语言:javascript
复制
##Fabric Data 
getFabric = df_new['Unit Price']
result = []
for fabric in getFabric:
    if fabric == 310:
        result.append("Card")        
    elif fabric == 330:
        result.append("Combed Dawah")
    elif fabric == 350:
        result.append("Combed Regular")
    elif fabric == 490:
        result.append("Viscos")
    elif fabric == 550:
        result.append("Pleated")
    else:
        result.append(fabric)
    df_new['Fabric'] = result

错误:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-05-22 15:23:32

迭代列值的计算。试试这个,

熊猫内置函数称为.replace(),对于替换列中的值非常有用,而无需迭代遍历它。

代码语言:javascript
复制
df_new['Unit Price'].replace({310: 'Card', 330: 'Combed Dawah', 350: 'Combed Regular', 490: 'Viscos', 550: 'Pleated'}, inplace=True)

上面的代码将成功地关联dataframe列值inplace

票数 0
EN

Stack Overflow用户

发布于 2022-05-22 17:12:55

这很简单伙计..。

代码语言:javascript
复制
your_df["Fabric"] = your_df["Unit Price"].apply(lambda x: str(x).replace("330", "Card"))

# do this for every conversion

your_df.to_csv("filename.csv")

以上代码可以保存为CSV文件,可以在MS中查看。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72338772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档