나는 OAuth2가 나를 위해 예상대로 작동하는지 확인하기 위해 Hello Analytics 튜토리얼을 통해 작업했지만 pandas.io.ga 모듈에 어떤 행운이 없다. 예상대로pandas.io.ga 나를 위해 일하지 않는다
In [1]: from pandas.io import ga
In [2]: df = ga.read_ga("pageviews", "pagePath", "2014-07-08")
/usr/local/lib/python2.7/dist-packages/pandas/core/index.py:1162: FutureWarning: using '-' to provide set differences
with Indexes is deprecated, use .difference()
"use .difference()",FutureWarning)
/usr/local/lib/python2.7/dist-packages/pandas/core/index.py:1147: FutureWarning: using '+' to provide set union with
Indexes is deprecated, use '|' or .union()
"use '|' or .union()",FutureWarning)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-2-b5343faf9ae6> in <module>()
----> 1 df = ga.read_ga("pageviews", "pagePath", "2014-07-08")
/usr/local/lib/python2.7/dist-packages/pandas/io/ga.pyc in read_ga(metrics, dimensions, start_date, **kwargs)
105 reader = GAnalytics(**reader_kwds)
106 return reader.get_data(metrics=metrics, start_date=start_date,
--> 107 dimensions=dimensions, **kwargs)
108
109
/usr/local/lib/python2.7/dist-packages/pandas/io/ga.pyc in get_data(self, metrics, start_date, end_date, dimensions,
segment, filters, start_index, max_results, index_col, parse_dates, keep_date_col, date_parser, na_values, converters,
sort, dayfirst, account_name, account_id, property_name, property_id, profile_name, profile_id, chunksize)
293
294 if chunksize is None:
--> 295 return _read(start_index, max_results)
296
297 def iterator():
/usr/local/lib/python2.7/dist-packages/pandas/io/ga.pyc in _read(start, result_size)
287 dayfirst=dayfirst,
288 na_values=na_values,
--> 289 converters=converters, sort=sort)
290 except HttpError as inst:
291 raise ValueError('Google API error %s: %s' % (inst.resp.status,
/usr/local/lib/python2.7/dist-packages/pandas/io/ga.pyc in _parse_data(self, rows, col_info, index_col, parse_dates,
keep_date_col, date_parser, dayfirst, na_values, converters, sort)
313 keep_date_col=keep_date_col,
314 converters=converters,
--> 315 header=None, names=col_names))
316
317 if isinstance(sort, bool) and sort:
/usr/local/lib/python2.7/dist-packages/pandas/io/parsers.pyc in _read(filepath_or_buffer, kwds)
237
238 # Create the parser.
--> 239 parser = TextFileReader(filepath_or_buffer, **kwds)
240
241 if (nrows is not None) and (chunksize is not None):
/usr/local/lib/python2.7/dist-packages/pandas/io/parsers.pyc in __init__(self, f, engine, **kwds)
551 self.options['has_index_names'] = kwds['has_index_names']
552
--> 553 self._make_engine(self.engine)
554
555 def _get_options_with_defaults(self, engine):
/usr/local/lib/python2.7/dist-packages/pandas/io/parsers.pyc in _make_engine(self, engine)
694 elif engine == 'python-fwf':
695 klass = FixedWidthFieldParser
--> 696 self._engine = klass(self.f, **self.options)
697
698 def _failover_to_python(self):
/usr/local/lib/python2.7/dist-packages/pandas/io/parsers.pyc in __init__(self, f, **kwds)
1412 if not self._has_complex_date_col:
1413 (index_names,
-> 1414 self.orig_names, self.columns) = self._get_index_name(self.columns)
1415 self._name_processed = True
1416 if self.index_names is None:
/usr/local/lib/python2.7/dist-packages/pandas/io/parsers.pyc in _get_index_name(self, columns)
1886 # Case 2
1887 (index_name, columns_,
-> 1888 self.index_col) = _clean_index_names(columns, self.index_col)
1889
1890 return index_name, orig_names, columns
/usr/local/lib/python2.7/dist-packages/pandas/io/parsers.pyc in _clean_index_names(columns, index_col)
2171 break
2172 else:
-> 2173 name = cp_cols[c]
2174 columns.remove(name)
2175 index_names.append(name)
TypeError: list indices must be integers, not Index
OAuth2를가 작동하고 난 단지 데모 변수로 이러한 매개 변수를 사용했다 - 쿼리 자체가 쓰레기입니다 : 특히,이 오류와 함께 붙어있다. 기본적으로 오류의 출처를 파악할 수 없으며 포인터가 가지고있는 모든 점을 이해할 수 있습니다.
감사합니다.
솔루션 (일종의)
이 내가 무엇을 액세스하거나하기 위해 노력하고있어 데이터와 관련이있다 확실하지만, 내가지고있어 문제가되는 인덱스 유형 오류하여 index_col 변수에서 발생하지 않음 pandas.io.ga.GDataReader.get_data()는 pandas.core.index.Index 유형입니다. 이것은 넘어지는 _parse_data()의 pandas.io.parsers._read()에 공급됩니다. 나는 이것을 이해하지 못한다. 그러나 그것은 나를위한 단점이다.
index_col = _clean_index(list(dimensions), parse_dates).tolist()
모든 것이 버터 지금처럼 부드럽게,하지만 난이 중단 될 수 있습니다 의심 - 다른 사람이 문제가되는 경우 - I가 ga.py의 라인 (270)을 편집 한 수정으로
다른 상황의 것들 ...
아, 그게 훨씬 좋습니다! 단순히 index_col = 키워드를 전달하면 일이 잘 진행됩니다. 내가하지 않으면 (즉, 예제 코드에서와 같이 인수를 전달하지 마십시오.) 필자가 위의 편집 작업에 넣은 "솔루션"이 작동하고 날짜가 맨 위에있는 다중 인덱스를 사용하여 DataFrame 객체가 만들어집니다 수평. – tim