微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从没有列标题的 .csv 文件中删除整列 - 简单问题

如何解决从没有列标题的 .csv 文件中删除整列 - 简单问题

我只想从 .csv 文件中完全删除第 6 到 11 列。不幸的是,实施在线找到的解决方案并没有得到任何修复。大多数解决方删除。列由其列标题标识,但是,我的 .csv 文件没有列标题,因为没有它们以后会更容易。

from binance.client import Client
import config,csv
import pandas as pd

client = Client(config.apikey,config.apisecret)

candles = client.get_klines(symbol='ETHUSDT',interval=Client.KLINE_INTERVAL_1HOUR)

csvfile = open('1hour_dec2020_2021.csv','w',newline='')

candlestick_writer = csv.writer(csvfile,delimiter=',')


candlesticks=client.get_historical_klines('ETHUSDT',client.KLINE_INTERVAL_1HOUR,"1 Dec 2020","1 Jan 2021")

for candlestick in candlesticks:
    candlestick_writer.writerow(candlestick)

csvfile.close()

.csv 文件中的示例行: 1502942400000,301.13000000,302.57000000,298.00000000,301.61000000,125.66877000,1502945999999,37684.80418100,129,80.56377000,24193.44078900,47039.70675719 对应于币安 kline 响应

删除不需要的列最好会导致:-timestamp,o,h,l,c,v 1502942400000,125.66877000

解决方法

您可以使用 itemgetter() 从每一行中选择所需的值。在您的情况下,它们是连续的,因此您也可以使用一个简单的切片:

from operator import itemgetter
from binance.client import Client
import config,csv

required_cols = itemgetter(0,1,2,3,4,5)        # specify required columns 
client = Client(config.apikey,config.apisecret)

with open('1hour_dec2020_2021.csv','w',newline='') as csvfile:
    candlestick_writer = csv.writer(csvfile)
    candlesticks = client.get_historical_klines('ETHUSDT',client.KLINE_INTERVAL_1HOUR,"1 Dec 2020","1 Jan 2021")

    for candlestick in candlesticks:
        candlestick_writer.writerow(required_cols(candlestick))
        
        # or just use a slice if contiguous
        # csv_output.writerow(candlestick[:6])        

使用 with() 避免了还需要添加 close()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。