我有一个包含 3 列和数据类型的数据框:Datetime (Datetime dtype)、Area (string)、Value (float)。
我想旋转它,以便为区域中的每个唯一条目获得单独的列。
df_pivot = pd.pivot(df,index='Datetime',columns='Area','values='Value')
现在我收到以下错误
ValueError: Index contains duplicate entries, cannot reshape.
我删除重复项而不进行子集化,然后重试,但得到相同的结果。
我尝试找到有问题的条目,但没有成功:
duplicates = df[df.duplicated(subset=['Datetime','Area','Value'], keep=False)]
这将返回一个空数据框
所以我尝试重置索引并使用下一个索引重复子集:
duplicates = df[df.duplicated(subset=['Datetime','Area','Value','index'], keep=False)]
我得到了相同的结果,一个空的数据框和一个不可旋转的 df。
还有其他方法可以找到有问题的条目吗?
您需要查找每个
Datetime
和 Area
的重复项,而不是所有 3 列:
df = pd.DataFrame(
{
"Datetime" : [1,1,2,3,3],
"Value" : [1,2,3,4,5],
"Area" : ["D", "D", "D", "E", "E"]
}
)
duplicates = df[df.duplicated(subset=['Datetime','Area'], keep=False)]
print (duplicates)
Datetime Value Area
0 1 1 D
1 1 2 D
3 3 4 E
4 3 5 E