通过 csv 文件中的标题信息,可以将城市抓取为:
city = row['city']
现在如何假设csv文件没有标题,只有1列,列是城市。
如果您自己声明标题,您仍然可以使用您的行,因为您知道:
with open('data.csv') as f:
cf = csv.DictReader(f, fieldnames=['city'])
for row in cf:
print row['city']
csv.DictReader
信息。
另一种选择是仅使用位置索引,因为您知道只有一列:
with open('data.csv') as f:
cf = csv.reader(f)
for row in cf:
print row[0]
您可以使用 pandas.read_csv() 函数,类似于 @nosklo 描述的方式,如下所示:
df = pandas.read_csv("A2", header=None)
print df[0]
或
df = pandas.read_csv("A2", header=None, names=(['city']))
print df['city']
对于没有标题的 CSV 文件,并且有超过 1 列,可以在 fieldnames=[]
中按顺序添加其他列名称背景:我有一个由主机名组成的 CSV,后跟各自的 IP。
例如
PLNXXXXA, 10.10.10.1
PLNXXXXB, 10.10.10.2
我想构建我的查找,键是IP,相应的值是主机名以丰富我的数据。下面是代码:
import csv
csv_file =r"4.1.6_lookup.csv"
# Initialize an empty lookup dictionary
lookup = {}
# Read from the CSV file and populate the lookup dictionary
with open(csv_file, 'r') as f:
csv_reader = csv.DictReader(f,fieldnames=['hostname','IP'])
for row in csv_reader:
# Capitalize the hostname and remove any leading/trailing whitespaces
hostname = row['hostname'].upper().strip()
lookup[row['IP']] = hostname
输出将类似于:
{'10.10.10.1': 'PLNXXXXA', '10.10.10.2': 'PLNXXXXB'}
希望这对某人有帮助。 谢谢你;)
我正在使用 pandas 数据框对象:
df=pd.read_sql(sql_query,data_connection)
df.to_csv(filename, header=False, index=False)
不知道这是否是最Pythonic的方法,但它完成了工作。