如何在使用pandas导入csv时跳过前几行文本?

时间:2018-06-14 03:32:28

标签: python pandas csv data-analysis data-cleaning

我们每天都会收到供应商提供的csv文件。 但是,格式如下:

<table>
  <tr>
    <th colspan="6">#Receiver</th>
  </tr>
  <tr>
    <td colspan="6">#DateTime</td>
  </tr>
  <tr>
    <td colspan="6">#Address</td>
  </tr>
  <tr>
    <td colspan="6"></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td>Col1</td>
    <td>Col2</td>
    <td>Col3</td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td>1</td>
    <td>A</td>
    <td>3</td>
    <td>10%</td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td>2</td>
    <td>B</td>
    <td>3</td>
    <td>20%</td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td>3</td>
    <td>C</td>
    <td>2</td>
    <td>10%</td>
  </tr>
</table>

我需要使用pandas来读取从第5行和第3列开始的表。 我怎么能跳过前几行?

感谢。

1 个答案:

答案 0 :(得分:0)

以下代码可以帮助您

class RestaurantForm(forms.ModelForm):

    class Meta:
        model = Restauarant

        fields = ("restaurant_name", "phone", "logo", "street_address",
          "city", "state", "zip_Code")


    def save(self):
        if not self.lat or not self.lng:
            self.lat, self.lng = self.geocode(self.address)

            super(Restaurant, self).save()

    def geocode(self, address):
        address = urllib.parse.quote_plus(address)
        maps_api_url = "?".join([
        "http://maps.googleapis.com/maps/api/geocode/json",
            urllib.parse.urlencode(street_address, city, state, zip_code)
    ])
    response = urllib.urlopen(maps_api_url)
    data = json.loads(response.read().decode('utf8'))

    if data['status'] == 'OK':
        lat = data['results'][0]['geometry']['restaurant']['lat']
        lng = data['results'][0]['geometry']['restaurant']['lng']

    return Decimal(lat), Decimal(lng)
         # Creates instance of form. Once the form is created, we can go back and edit that form.

    def __init__(self, *args, **kwargs):
        super(RestaurantForm, self).__init__(*args, **kwargs)
        if kwargs.get('instance'):
            self.fields['logo'].required = False

所以,你只需根据你想忽略的行数给出一个值