KeyError:“键”和TypeError:需要一个整数

时间:2019-07-31 00:28:43

标签: python pandas azure

我相信已经回答了这两个问题,但是我目前一次都遇到了这两个错误,我不确定是什么原因造成的。

# Get data
fileName = 'https://acmsmlblob.blob.core.windows.net/acmsdata/resultExpandedGlbFriendlyName_1.ss_TOP_10000.csv'
raw = pd.read_csv(fileName, ",", header=None)
df = raw.copy()

df['datetime'] = pd.to_datetime(df['StartDateId'], format='%m/%d/%Y %H:%M:%S %p')
df['dow'] = df['datetime'].dt.dayofweek
df['tod'] = df['datetime'].dt.hour
df = df[['dow', 'tod', 'Owner', 'TenantId', 'SplitedPolicy']]

当我运行上面的代码时,会产生这些错误,并且由于我完全不知道Python的工作方式,因此我难以理解为什么会抛出它们。

TypeError: an integer is required

During handling of the above exception, another exception occurred:

KeyError: 'StartDateId'

代码中是否有这种情况

1 个答案:

答案 0 :(得分:2)

您告诉熊猫忽略csv文件上的标头:

raw = pd.read_csv(fileName, ",", header=None)

因此,它不知道列名,而是想要一个整数索引。该文件具有标题行,因此请不要忽略它,您应该可以使用标题名:

raw = pd.read_csv(fileName, ",")