concat之后数据帧的行为不同

2024-04-29 21:22:56 发布

您现在位置:Python中文网/ 问答频道 /正文

使用concat合并两个数据帧后,以下代码无法正常工作。 在合并代码之前,请执行以下操作:

hours_cm02 = 0
for i in range(len(df)):
    if df.loc[i,'Team_name'] == "CM02":
        hours_cm02 = hours_cm02+df.loc[i,'Actual Billed Hours']
print(hours_cm02)

我得到以下错误: ValueError:序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()

我使用下面的代码进行合并

frames = [df1,df2]
df = pd.concat(frames)

两个数据帧的结构(列数和列名)相同


1条回答
网友
1楼 · 发布于 2024-04-29 21:22:56

问题是,在执行连接后,新数据帧的索引中有重复的值。代码行df.loc[i,'Team_name']可以引用数据帧中的多行

解决方案:

  1. df = pd.concat(frames)更改为df = pd.concat(frames, ignore_index=True)。这将在连接索引并使其唯一后重置索引
  2. 将代码更改为使用iloc,它引用的是行号而不是索引。i、 e.使用df.iloc[i]['Team_name']df.iloc[i]['Actual Billed Hours']

相关问题 更多 >