python - 使用 Excel 工作表中的数据替换数据框中的值
问题描述
我有一个带有产品名称的简单 excel 文件。第一行是类别(A1:水,A2:起泡酒,A3:Still,B1:软饮料,B2:可口可乐,B3:橙汁,B4:柠檬水等),下面的每个单元格都是不同的产品。我想用产品类别替换另一个数据框(df1)的单元格。例如,可口可乐将成为软饮料。如果产品不在 Excel 中,则不会被替换(例如 Cookie)。
打印(df1)
Product Quantity
0 Coca Cola 1234
1 Cookie 4
2 Still 333
3 Chips 88
结果:
print (df1)
Product Quantity
0 Soft Drinks 1234
1 Cookie 4
2 Water 333
3 Snacks 88
解决方案
我们从 Excel 数据框创建一个查找字典,并使用它用类别替换产品名称(字典中未找到的产品按要求保留未替换):
df = pd.read_excel(r'c:\temp\product_names.xlsx')
df1 = pd.DataFrame({'Product': ['Coca Cola','Cookie','Still','Chips'], 'Quantity': [1234,4,333,88]})
lu = df.unstack().dropna().reset_index()
df1.Product.replace(dict(zip(lu.iloc[:,2],lu.iloc[:,0])),inplace=True)
结果:
Product Quantity
0 Soft Drinks 1234
1 Cookie 4
2 Water 333
3 Snacks 88
PS:这是要粘贴到 A1 处的 Excel 工作表中以重现示例的 csv 文件:
Water,Soft Drinks,Sandwich,Snacks
Sparkling,Coca Cola,Ham and cheese,Chips
Still,Orange Juice,Vegetarian,
,Lemonade,Club,
,,Spinach,
推荐阅读
- neo4j - Neo4j 密码选择查询在树状结构图中
- r - 根据 R 中 for 循环体的结果改变 for 循环中的迭代次数
- python - 使用 PYTHON 将 3 维 DataFrame 转换为 3 维数组的问题
- android - 带有 Kotlin 的 Android - 将数据传回之前的 Activity
- java - Spring Security:如何设置自定义 PortMapper?
- azure - 为什么重新启动函数应用的 Azure 应用服务不同步 azure 函数?
- python - 从 matplotlib 中的自动缩放中排除高于/低于阈值的值
- python - 如何在 Python 中撤消 os.unlink()?
- php - Instagram 基本显示 API:如何获取 CODE
- java - getParameterMetaData 上的 OJDBC8 SQLFeatureNotSupportedException