在读取从Google Ads关键字规划工具下载的文件时遇到一些问题。如果我从此工具(不是API,而是GUI)下载了任何文件,则会得到一个基本的制表符分隔的CSV文件,如下所示(在记事本中打开时)。
Keyword Stats 2019-03-01 at 14_08_25
"February 1, 2018 - January 31, 2019"
Keyword Currency Avg. monthly searches Min search volume Max search volume Competition Competition (indexed value) Top of page bid (low range) Top of page bid (high range) Ad impression share Organic impression share Organic average position In account? In plan? Searches: Feb 2018 Searches: Mar 2018 Searches: Apr 2018 Searches: May 2018 Searches: Jun 2018 Searches: Jul 2018 Searches: Aug 2018 Searches: Sep 2018 Searches: Oct 2018 Searches: Nov 2018 Searches: Dec 2018 Searches: Jan 2019
Women Fashion Plus Sizes USD N/A 0 10 Unknown
plus size women USD N/A "10,000" "100,000" High 100 0.88 2.51
Large Fashionable Clothing USD N/A 0 10 Unknown
plus size clothing USD N/A "100,000" "1,000,000" High 100 1.02 2.79
plus size dresses USD N/A "100,000" "1,000,000" High 100 0.67 1.79
此文件也可以使用excel打开。
但是,如果我使用以下代码在Pandas中读取文件:
df = pd.read_csv(file, skiprows = 10, header = 0, sep = '\t')
创建一个数据框,该数据框完全为空(所有nan和未命名的标头),但具有正确的行数和26列。
如果我只是打开并读取文件,则会得到一大堆看上去很奇怪(很多x00)的unicode,当这样读取时,unicode似乎不等于任何东西。
open(file).readlines()
>>> '\x00p\x00l\x00u\x00s\x00 \x00s\x00i\x00z\x00e\x00 \x00o\x00u\x00t\x00f\x00i\x00t\x00 \x00i\x00d\x00e\x00a\x00s\x00 \x00f\x00o\x00r\x00 \x00s\x00u\x00m\x00m\x00e\x00r\x00\t\x00U\x00S\x00D\x00\t\x00N\x00/\x00A\x00\t\x001\x000\x000\x00\t\x00"\x001\x00,\x000\x000\x000\x00"\x00\t\x00H\x00i\x00g\x00h\x00\t\x001\x000\x000\x00\t\x000\x00.\x005\x008\x00\t\x005\x00.\x006\x002\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\n',
"\x00w\x00o\x00m\x00e\x00n\x00'\x00s\x00 \x00p\x00l\x00u\x00s\x00 \x00s\x00i\x00z\x00e\x00 \x00b\x00o\x00u\x00t\x00i\x00q\x00u\x00e\x00 \x00c\x00l\x00o\x00t\x00h\x00i\x00n\x00g\x00 \x00o\x00n\x00l\x00i\x00n\x00e\x00\t\x00U\x00S\x00D\x00\t\x00N\x00/\x00A\x00\t\x001\x000\x00\t\x001\x000\x000\x00\t\x00H\x00i\x00g\x00h\x00\t\x009\x007\x00\t\x000\x00.\x005\x001\x00\t\x008\x00.\x009\x003\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\n",
'\x00w\x00o\x00m\x00e\x00n\x00s\x00 \x00p\x00l\x00u\x00s\x00 \x00s\x00i\x00z\x00e\x00 \x00s\x00t\x00o\x00r\x00e\x00\t\x00U\x00S\x00D\x00\t\x00N\x00/\x00A\x00\t\x001\x000\x00\t\x001\x000\x000\x00\t\x00H\x00i\x00g\x00h\x00\t\x009\x007\x00\t\x000\x00.\x006\x002\x00\t\x001\x00.\x005\x005\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\n',
'\x00b\x00e\x00s\x00t\x00 \x00p\x00l\x00u\x00s\x00 \x00s\x00i\x00z\x00e\x00 \x00b\x00r\x00a\x00n\x00d\x00s\x00\t\x00U\x00S\x00D\x00\t\x00N\x00/\x00A\x00\t\x001\x000\x000\x00\t\x00"\x001\x00,\x000\x000\x000\x00"\x00\t\x00L\x00o\x00w\x00\t\x002\x003\x00\t\x001\x00.\x002\x003\x00\t\x007\x00.\x000\x005\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\n',
'\x00g\x00r\x00e\x00a\x00t\x00 \x00p\x00l\x00u\x00s\x00 \x00s\x00i\x00z\x00e\x00 \x00d\x00r\x00e\x00s\x00s\x00e\x00s\x00\t\x00U\x00S\x00D\x00\t\x00N\x00/\x00A\x00\t\x001\x000\x00\t\x001\x000\x000\x00\t\x00H\x00i\x00g\x00h\x00\t\x001\x000\x000\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\n',
'\x00l\x00o\x00o\x00k\x00i\x00n\x00g\x00 \x00f\x00o\x00r\x00 \x00p\x00l\x00u\x00s\x00 \x00s\x00i\x00z\x00e\x00 \x00d\x00r\x00e\x00s\x00s\x00e\x00s\x00\t\x00U\x00S\x00D\x00\t\x00N\x00/\x00A\x00\t\x001\x000\x00\t\x001\x000\x000\x00\t\x00H\x00i\x00g\x00h\x00\t\x001\x000\x000\x00\t\x000\x00.\x005\x009\x00\t\x001\x00.\x008\x001\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\n',
'\x00a\x00m\x00e\x00r\x00i\x00c\x00a\x00n\x00 \x00p\x00l\x00u\x00s\x00 \x00s\x00i\x00z\x00e\x00 \x00c\x00l\x00o\x00t\x00h\x00i\x00n\x00g\x00 \x00o\x00n\x00l\x00i\x00n\x00e\x00\t\x00U\x00S\x00D\x00\t\x00N\x00/\x00A\x00\t\x001\x000\x00\t\x001\x000\x000\x00\t\x00U\x00n\x00k\x00n\x00o\x00w\x00n\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\t\x00\n',
...]
我尝试了多种不同的编码,但无济于事。
想法?
谢谢您的帮助!
答案 0 :(得分:1)
下载的CSV文件以大端UTF-16编码。我认为Adwords这样做是为了确保与Microsoft Excel的兼容性。
df = pd.read_csv(file, skiprows = 10, header = 0, sep = '\t', encoding='utf_16_be')
应该给出预期的结果。
答案 1 :(得分:0)
什么对我有用:
df = pd.read_csv(
"Keyword Stats file name.csv", encoding='utf_16', sep='\t', skiprows=2
)