Python 如何创建数据帧的集合
我有这个密码Python 如何创建数据帧的集合,python,Python,我有这个密码 y2 = {} x1=datasim.iloc[:,1] y1=datasim.iloc[:, ::2] x2=[i*(0.1) for i in range(4800)] x2 = {} for column in x1: xb=[i*(0.1) for i in range(4800)] x2[column]=pd.DataFrame(xb) for column in y1: y2[y1.columns.get_loc(column)]=np.inte
y2 = {}
x1=datasim.iloc[:,1]
y1=datasim.iloc[:, ::2]
x2=[i*(0.1) for i in range(4800)]
x2 = {}
for column in x1:
xb=[i*(0.1) for i in range(4800)]
x2[column]=pd.DataFrame(xb)
for column in y1:
y2[y1.columns.get_loc(column)]=np.interp(x2,x1,y1[column])
当我执行代码时,会收到以下错误消息:
float()参数必须是字符串或数字,而不是“dict”
如何修复代码?正如所述,interp()
的第二个参数应该是1-D浮点序列,第三个参数应该是1-D浮点序列或复数序列
但是,您的x2
和x1
不是单向浮点或复杂序列,而是一个字典
现在,这取决于您希望代码被更改的确切程度
把字典列成一个单子
对于每一串或单个键,让它们在一个二维列表中的每个不同的一维列表上运行
如果一个或所有的代码都错了,或者发生了什么不好的事情,请告诉我。我将修复您的投诉。您在哪一行收到此错误?我在最后一行收到错误,我们无法复制您的代码。发布一个我们可以复制/粘贴并复制的代码。什么是
datasim
?请共享整个错误消息以及。datasim是一个数据帧,完整消息错误如下:回溯(最近一次调用):文件“”,第11行,在y2[y1.columns.get_loc(column)]=np.interp(x2,x1,y1[column]),文件“”,第6行,在interp文件中“C:\Users\shengesh\AppData\Local\Continuum\anaconda3\lib\site packages\numpy\lib\function\u base.py”,interp return interp_func(x,xp,fp,left,right)中的第1412行类型错误:float()参数必须是字符串或数字,而不是“dict”
from collections import defaultdict
def flattenit(sublist):
flat_list = []
for sublist in l:
for item in sublist:
flat_list.append(item)
# so on ...
y2 = {}
x1=datasim.iloc[:,1]
sub_x1 = defaultdict(list)
for k, v in x1:
sub_x1[k].append(v)
y1=datasim.iloc[:, ::2]
x2=[i*(0.1) for i in range(4800)]
x2 = {}
sub_x2 = defaultdict(list)
for k, v in x2:
sub_x2[k].append(v)
for column in x1:
xb=[i*(0.1) for i in range(4800)]
x2[column]=pd.DataFrame(xb)
for column in y1:
y2[y1.columns.get_loc(column)]=np.interp(flattenit( sub_x2.keys() ),
flattenit( sub_x1.keys() ),
y1[column])
# so on 'til an end...
# Oh, by the way, this couple of a stackoverflow posts helped to write this code:
# https://stackoverflow.com/questions/952914/how-to-make-a-flat-list-out-of-list-of-lists
# https://stackoverflow.com/questions/960733/python-creating-a-dictionary-of-lists
# so on ...
y2 = [] #sorry for your y2! but now it's a list.
x1=datasim.iloc[:,1]
y1=datasim.iloc[:, ::2]
x2=[i*(0.1) for i in range(4800)]
x2 = {}
for column in x1:
xb=[i*(0.1) for i in range(4800)]
x2[column]=pd.DataFrame(xb)
for column in y1:
for i in len(x2.keys()):
y2.append([])
y2[i].append([])
for j in len(x1.keys()):
y2[i].append(np.interp(x2[i], x1[j], y1[column]))
# so on 'til an end