[英]argparse, is there a way to pass specific columns of a csv file
我有一个 csv 文件,我想使用 argparse 将它的特定列传递给脚本。 有可能这样做吗? 你能告诉我怎么做吗? 这是 test_file 的示例内容
id code address city zip
1 232 123 main street bahtina. abc34
2 421 321 pagalkhana frombehram. zila132
python3 main.py -f test_file.csv -a [address column of test_file.csv] -c [city column of test_file] -z "zip of test_file
如果我正确理解您的问题,您希望使用这些标志来选择文件的特定列。 如果是这种情况,您可能想看看csvkit 。 使用此工具,您可以执行以下操作:
csvcut -c address,city test_file.csv | csvlook
如果你真的想使用 argparse 和你自己的脚本,这里有一些示例代码:
# CLI
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-f')
parser.add_argument('-a', action='store_true')
parser.add_argument('-c', action='store_true')
args = parser.parse_args()
# File handling
import pandas as pd
# Select include columns from arguments
usecols = []
if args.a: usecols.append('address')
if args.c: usecols.append('city')
# Read the file in the f argument with the specified columns.
df = pd.read_csv(args.f, usecols=usecols)
# Do something with df here
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.