美好的一天。我正在尝试做一个相对简单的事情,但无法理解错误所在。我有两个数据框: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)索引...猜出来是我问题的根源。
[似乎您的df2 [帐户]中可能有一个无法转换为浮点值的值。