Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python—无法循环数字_Python_Pandas_Dataframe - Fatal编程技术网

Python—无法循环数字

Python—无法循环数字,python,pandas,dataframe,Python,Pandas,Dataframe,给了我一组可怕的错误,但是当我用一个数字替换y时,效果很好,但是我需要循环使用y的不同值 错误看起来像 col = []; for y in range(0, len(q)): df3 = df2[q.iloc[y]['ric']] col.append(df3[i]) q['1_quarter_return'] = col; ValueError回溯(最近一次调用) 在() 3 df3=df2[q.iloc[y]['ric']] 4列附加(df3[i]) ---->5 q['

给了我一组可怕的错误,但是当我用一个数字替换y时,效果很好,但是我需要循环使用y的不同值

错误看起来像

col = [];
for y in range(0, len(q)):
    df3 = df2[q.iloc[y]['ric']]
    col.append(df3[i])
q['1_quarter_return'] = col;
ValueError回溯(最近一次调用)
在()
3 df3=df2[q.iloc[y]['ric']]
4列附加(df3[i])
---->5 q['1季度回报]=col;
/Users/dd/anaconda/lib/python2.7/site-packages/pandas/core/frame.pyc in____设置项__(self、key、value)
2417其他:
2418#集合列
->2419自我设置项目(键、值)
2420
2421 def_setitem_切片(自身、键、值):
/Users/dd/anaconda/lib/python2.7/site-packages/pandas/core/frame.pyc in_set_项(self、key、value)
2483
2484自我确保有效索引(值)
->2485值=自清洁列(键,值)
2486 NDFrame.\u设置\u项(自身、键、值)
2487
/Users/dd/anaconda/lib/python2.7/site-packages/pandas/core/frame.pyc在_sanitize_列中(self、key、value、broadcast)
2654
2655#把我变成一个废物
->2656值=_清理_索引(值,self.index,copy=False)
2657如果不存在(值,(np.ndarray,索引)):
2658如果isinstance(值,列表)和len(值)>0:
/Users/dd/anaconda/lib/python2.7/site-packages/pandas/core/series.pyc in_sanitize_index(数据、索引、副本)
2798
2799如果len(数据)!=len(索引):
->2800 raise VALUERROR('值的长度与“”索引的长度不匹配')
2801
2802如果存在(数据、周期索引):

似乎用while循环做同样的事情效果很好,为什么我不确定

ValueError                                Traceback (most recent call last)
<ipython-input-55-7e9c11c3e50d> in <module>()
  3     df3 = df2[q.iloc[y]['ric']]
  4     col.append(df3[i])
----> 5 q['1_quarter_return'] = col;

/Users/dd/anaconda/lib/python2.7/site-packages/pandas/core/frame.pyc in __setitem__(self, key, value)
   2417         else:
   2418             # set column    
-> 2419             self._set_item(key, value)
   2420 
   2421     def _setitem_slice(self, key, value):

/Users/dd/anaconda/lib/python2.7/site-packages/pandas/core/frame.pyc in _set_item(self, key, value)
   2483 
   2484         self._ensure_valid_index(value)
-> 2485         value = self._sanitize_column(key, value)
   2486         NDFrame._set_item(self, key, value)
   2487 

/Users/dd/anaconda/lib/python2.7/site-packages/pandas/core/frame.pyc in _sanitize_column(self, key, value, broadcast)
   2654 
   2655             # turn me into an ndarray
-> 2656             value = _sanitize_index(value, self.index, copy=False)
   2657             if not isinstance(value, (np.ndarray, Index)):
   2658                 if isinstance(value, list) and len(value) > 0:

/Users/dd/anaconda/lib/python2.7/site-packages/pandas/core/series.pyc in _sanitize_index(data, index, copy)
   2798 
   2799     if len(data) != len(index):
-> 2800         raise ValueError('Length of values does not match length of '     'index')
   2801 
   2802     if isinstance(data, PeriodIndex):
col=[]
y=0;
y<41时:
df3=df2[q.iloc[y]['ric']]
列追加(df3[i])
y=y+1;

您的数据是什么?你的产出是多少?永远不要在pandas中显式迭代,这是一个反模式。我的数据是一个输入CSV,我想通过从第二个CSV提取数据来添加另一个COLLMN。你建议我怎么做?请在你的问题中粘贴大约10行,并显示你的预期输出。运行df.head()并粘贴它。这会让事情变得更容易。
col = []
y = 0;
while y < 41:
    df3 = df2[q.iloc[y]['ric']]
    col.append(df3[i])
    y = y+1;