在精简数据帧上使用loc

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

美好的一天。我正在尝试做一个相对简单的事情,但无法理解错误所在。我有两个数据框:df和df2每个数据框都有一个“ Account”列,其中包含一个客户端的5个符号代码和一个带有其全名的“ Client Name”。我想遍历“帐户”的唯一值并获取相应的“客户名称”值。下面的代码运行完美:

for x in df['Account'].unique():

    worksheet.write(row, 4, df.loc[df[df['Account'] == x].index[0], 'Client Name'])

但是后来我不得不合并两个数据帧,所以我使用了concat

modified_df = pd.concat([pd.concat([df['Account'], df2['Account']]),
                 pd.concat([df['Client Name'], df2['Client Name']])], axis=1)

而且令人惊讶的是,当我用df代替modified_df时,它停止工作。Pycharm突出显示“ loc”并提供建议:“类“ type”的未解决的属性引用“ loc”]

并且当我运行代码时,发生以下错误:'TypeError:无法将系列转换为类'float'

我检查过,df和modified_df都是熊猫数据框类

下面是示例数据框

import pandas as pd
import numpy as np

df = pd.DataFrame(np.array([['A', 'Company A'], ['B', 'Company B'], ['A', 'Company A']]),columns=['Account', 'Client Name'])
df2 = pd.DataFrame(np.array([['C', 'Company C'], ['B', 'Company B'], ['A', 'Company A']]),columns=['Account', 'Client Name'])
modified_df = pd.concat([pd.concat([df['Account'], df2['Account']]),
                     pd.concat([df['Client Name'], df2['Client Name']])], axis=1)

我希望得到的是列表“公司A,公司B,公司C”

更新在处理上面的示例数据时,我注意到简明df的指标并非唯一。我有两组(0,1,2)索引...猜出来是我问题的根源。

python pandas dataframe
1个回答
0
投票

[似乎您的df2 [帐户]中可能有一个无法转换为浮点值的值。

© www.soinside.com 2019 - 2024. All rights reserved.