调用 excel 或 csv 文件时爆炸命令不起作用

问题描述 投票:0回答:3

我一直在使用这个爆炸命令。请这是我的代码。

import pandas as pd
import os
os.getcwd()
os.chdir('C:/Users/nick/Documents/Python') # NOTE csv_filepath
df= pd.read_excel('output1.xlsx', usecols=['PartNumber', 'RefList'], index_col=False)
print(df.explode('RefList'))
file_name ='output2.xlsx'
df.to_excel(file_name)

输入文件数据 // 输出1.xlsx

零件编号 参考列表
公羊 苹果、橙子
拉维 香蕉、菠萝

接收输出数据//output2.xlsx“相同”我不知道哪里出错了。

零件编号 参考列表
公羊 苹果、橙子
拉维 香蕉、菠萝

如果我尝试使用下面的代码,它会起作用

  import pandas as pd
  import numpy as np
  df = pd.DataFrame({'animals': [['koala', 'kangaroo', 'echidna'], 
                           ['sloth', 'alpaca'], 
                           ['zebra', 'lion', 'baboon']],
               'diet': [['herbivorous', 'herbivorous', 'carnivorous'], 
                        ['omnivorous', 'herbivorous'], 
                        ['herbivorous', 'carnivorous', 'omnivorous']],
               'country': ['Australia', 'Peru', 'Kenya']})
                print`(df)`

我的爆炸命令不起作用。 尝试使用 .data 框架编译它,它工作正常。 如果我调用 excel 或 csv 文件不起作用。

python pandas openpyxl pandas-explode
3个回答
0
投票

示例

import pandas as pd
data = {'PartNumber': ['ram', 'ravi'], 'RefList': ['apple,orange', 'banan,pinapple']}
df = pd.DataFrame(data)

df:

    PartNumber  RefList
0   ram         apple,orange
1   ravi        banan,pinapple

代码

df.assign(RefList=df['RefList'].str.split(',')).explode('RefList')

输出:

PartNumber  RefList
0   ram     apple
0   ram     orange
1   ravi    banan
1   ravi    pinapple

然后使用以下代码

file_name ='output2.xlsx'
df.assign(RefList=df['RefList'].str.split(',')).explode('RefList').to_excel(file_name)

0
投票
import pandas as pd
import os
os.getcwd()
os.chdir('C:/Users/nick/Documents/Python') # NOTE csv_filepath
df1= pd.read_excel('output1.xlsx', usecols=['PartNumber', 'RefList'])


df2 = df1['RefList'].str.split(' ',expand=True)

df3 = pd.concat([df1, df2], axis=1)

df2 = df3.melt(id_vars=['PartNumber', 'RefList'])#, var_name='df.columns.values')
 
df2.explode ('RefList')

file_name='output2.xlsx'

df2.to_excel(file_name)

输出表#

零件编号 参考列表 变量 价值
公羊 苹果橙 0 苹果
拉维 香蕉菠萝 0 香蕉
公羊 苹果橙 1 橙色
拉维 香蕉菠萝 1 菠萝

0
投票
df['RefList'] = df['RefList'].str.strip('[]').str.split(',')

print(df.explode('RefList'))

输出#

   | PartNumber |  RefList |
   |------------|----------|
  |  ram   |  apple  |
  |  ram   | orange  |
  | ravi   |  banan  |
  | ravi | pinapple  |
© www.soinside.com 2019 - 2024. All rights reserved.