我想在我的excel文件tb.xlsx中工作,并通过名为 "混合类型 "的列对数据进行分组,然后将新的数据框存储到另一个excel文件中。
import numpy as np
import pandas as pd
df=pd.read_excel("D:\\tb.xlsx")
group=df.groupby("Hybrid type")
print(group)
df1=pd.DataFrame(columns=df.columns)
for Hybridtype,frame in group:
df2=pd.DataFrame(frame)
df1.append(df2,ignore_index=True)
print(df1)
df1.to_excel("Montu.xlsx",sheet_name="Sheet1")
当我运行这个文件时,它给出了输出。
<pandas.core.groupby.generic.DataFrameGroupBy object at 0x00000272FD41B108>
Empty DataFrame
Columns: [Electricity generation price per unit, Primary load demand, Hybrid type, Biomass type, Location, Country, System Type, Ref.]
Index: []
我想append()命令在这里不能正常工作,因为我的df1数据库是空的。有人能帮我解决我的代码吗?
在这里,你可以开始了。与原生的python相比,DataFrame.append()不是一个原地函数。很容易忘记;)
import numpy as np
import pandas as pd
df=pd.read_excel("D:\\tb.xlsx")
group=df.groupby("Hybrid type")
print(group)
df1=pd.DataFrame(columns=df.columns)
for Hybridtype,frame in group:
df2=pd.DataFrame(frame)
df1 = df1.append(df2,ignore_index=True)
print(df1)
df1.to_excel("Montu.xlsx",sheet_name="Sheet1")
几天前,我也遇到了类似的问题。由于我不知道你的xlsx的内容是什么,我用了一个示例文件来重现这个问题。
问题是这样的。
import numpy as np
import pandas as pd
df=pd.read_excel("/home/aakash/Downloads/file_example_XLS_100.xls")
group=df.groupby("Country")
print(group)
df1=pd.DataFrame(columns=df.columns)
for Hybridtype,frame in group:
df2=pd.DataFrame(frame)
df1.append(df2,ignore_index=True)
print(df1)
<pandas.core.groupby.generic.DataFrameGroupBy object at 0x7fe9b48eba90>
Empty DataFrame
Columns: [0, First Name, Last Name, Gender, Country, Age, Date, Id]
Index: []
解决方案:根据官方文档,"Dataframe.append "函数将其他行追加到调用者的末尾,返回一个新的对象,所以修改后的代码应该是。
import numpy as np
import pandas as pd
df=pd.read_excel("/home/aakash/Downloads/file_example_XLS_100.xls")
group=df.groupby("Country")
print(group)
df1=pd.DataFrame(columns=df.columns)
for Hybridtype,frame in group:
df2=pd.DataFrame(frame)
df1=df1.append(df2,ignore_index=True) ## Modified code
print(df1)
<pandas.core.groupby.generic.DataFrameGroupBy object at 0x7fe9b4380f60>
0 First Name Last Name Gender Country Age Date Id
0 3 Philip Gent Male France 36 21/05/2015 2587
1 12 Franklyn Unknow Male France 38 15/10/2017 2579
2 16 Shavonne Pia Female France 24 21/05/2015 1546
3 17 Shavon Benito Female France 39 15/10/2017 3579