【问题标题】:Python - pandas, chain indexing errorPython - 熊猫,链索引错误
【发布时间】:2016-09-23 10:50:54
【问题描述】:

我正在运行 PyCharm 和 Python 3.5。 我尝试从 csv 源获取(源、目标),并存储对时间、距离列的响应。

我正在尝试复制此代码: http://www.analyticsvidhya.com/blog/2015/03/hacking-google-maps-create-distance-features-model-applications/

但是,如果我按原样运行此代码,它将不起作用。

我认为由于链索引,代码停止运行...... 如果需要,我可以上传 csv。

感谢您的帮助

INPUT: cities.csv

错误行:

cities['distance'][i] = finddist(source, destination)
cities['time'][i] = findtime(source, destination)

代码:

from googlemaps import Client
from datetime import datetime


def finddist(source, destination):
    gmaps = Client(key='mykey')
    now = datetime.now()
    directions_result = gmaps.directions(source, destination, mode="driving", departure_time=now)
    for map1 in directions_result:
        overall_stats = map1['legs']
        for dimensions in overall_stats:
            distance = dimensions['distance']
            return [distance['text']]

def findtime(source, destination):
    gmaps = Client(key='mykey')
    now = datetime.now()
    directions_result = gmaps.directions(source, destination, mode="driving", departure_time=now)
    for map1 in directions_result:
        overall_stats = map1['legs']
        for dimensions in overall_stats:
            duration = dimensions['duration']
            return [duration['text']]

import numpy as np
import pandas as pd
import pylab as pl
import os
os.chdir("/users/merterten/documents")
cities = pd.read_csv("cities.csv")

cities["distance"] = 0
cities["time"] = 0
for i in range(0, 8):
    source = cities['Source'][i]
    destination = cities['Destination'][i]
    cities['distance'][i] = finddist(source, destination)
    cities['time'][i] = findtime(source, destination)

错误:

/Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 /Users/merterten/PycharmProjects/untitled/maps/__init__.py
/Users/merterten/PycharmProjects/untitled/maps/__init__.py:37: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
  cities['distance'][i] = finddist(source, destination)
/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/pandas/core/indexing.py:132: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
  self._setitem_with_indexer(indexer, value)
/Users/merterten/PycharmProjects/untitled/maps/__init__.py:38: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
  cities['time'][i] = findtime(source, destination)

Process finished with exit code 0

【问题讨论】:

    标签: python csv pandas pycharm


    【解决方案1】:

    这不是严格意义上的错误——process finished with exit code 0 表示程序成功终止。

    同时,您没有编写任何文件或发出任何打印语句。大概你想以某种方式记录你的结果,例如把cities.to_csv('results.csv')放在最后。

    您看到的日志的其余部分是 pandas 警告,而不是错误。

    【讨论】:

      猜你喜欢
      • 2015-11-22
      • 2021-12-30
      • 2021-02-12
      • 2016-06-11
      • 1970-01-01
      • 1970-01-01
      • 2018-07-13
      • 1970-01-01
      • 2018-12-21
      相关资源
      最近更新 更多