我一直在使用这个爆炸命令。请这是我的代码。
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 文件不起作用。
示例
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)
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 |菠萝 |