【发布时间】:2018-07-15 16:53:18
【问题描述】:
我正在使用当前的数据框:
df = pd.DataFrame({'columnA':[1111,1111,2222,3333,4444,4444,5555,6666],
'columnB':['AAAA','AAAA','BBBB','AAAA','BBBB','BBBB','AAAA','BBBB'],
'columnC':['one','two','one','one','one','sales','two','one'],
'NUM1':[1,3,5,7,1,0,4,5],
'NUM2':[5,3,6,9,2,4,1,1],
'W':list('aaabbbbb')})
我正在尝试在以下代码中使用动态列:
#First aggregate the data
d = {'columnB':'unique', 'columnC':'unique' }
df2 = df.groupby('columnA').agg(d)
#Convert list to string for each cell of the inventory field
mylist = ["columnB","columnC"]
for x in mylist:
columnName = x
#print("df2."+columnName+".apply(', '.join)")
df2[columnName] = df2[columnName].apply(', '.join)
它在 Jupyter 中运行良好。我的问题是当我在visualstudio上运行它时它不起作用。我收到此错误:
序列项 0:预期的 str 实例,找到浮点数
打印数据框的类型后,我得到了这个:
<class 'pandas.core.frame.DataFrame'>
这是完整的错误信息:
Traceback(最近一次调用最后一次):文件“stage1.py”,第 112 行,在 main() 文件“stage1.py”,第 57 行,在 main templateScenarios[columnName] = templateScenarios[columnName].apply(' , '.join) 文件“/Users/apolo.siskos/anaconda3/lib/python3.6/site-packages/pandas/core/series.py”,第 2355 行,在 apply mapped = lib.map_infer(values, f, convert=convert_dtype) 文件“pandas/_libs/src/inference.pyx”,第 1574 行,在 pandas._libs.lib.map_infer 类型错误:序列项 0:预期的 str 实例,找到浮点数
【问题讨论】:
-
您的每个解释器都使用哪些版本的 python 和 pandas?
-
请包含完整错误信息。
-
@PaulH Python 3.6.3 和 Pandas 0.20.3
-
在两者中?你确定吗?
-
@PaulH 是的。我在控制台中输入了 python3 并得到了第一个。我在我的脚本中打印了这个:
pd.__version__并得到了第二个。