为什么有些命令相对于前面的命令会导致错误?
Why some commands cause an error relative to the preceding command?
这是一个 pandas 问题。
尝试在 Jupyter Notebook 中复制此内容:
In [1]: df = pd.DataFrame([[1, 2], [4, 5], [7, 8]],
index=['cobra', 'viper', 'sidewinder'],
columns=['max_speed', 'shield'])
df
In [2]: df.pop('shield') # Return as series.
In [3]: pd.DataFrame(df.pop('shield')) # Return as DataFrame.
然后逆序为
In[1]
In[3]
In[2]
为什么 3rd Out[-] 总是导致错误?
我经常遇到这种错误。这是缓存问题吗?冗余?出现这种错误的原因是什么?
我认为您的代码产生了预期的错误:
df = pd.DataFrame([[1, 2], [4, 5], [7, 8]],
index=['cobra', 'viper', 'sidewinder'],
columns=['max_speed', 'shield'])
此处 DataFrame.pop
从原始 Dataframe 中提取列 shield
,创建系列并从原始数据框中删除:
a = df.pop('shield') # Return as series.
print (a)
cobra 2
viper 5
sidewinder 8
Name: shield, dtype: int64
因此 df
中没有列在 pop
之后:
print (df)
max_speed
cobra 1
viper 4
sidewinder 7
获取列 shield
失败,因为 df
:
中不存在
b = pd.DataFrame(df.pop('shield')) # Return as DataFrame.
print (b)
KeyError: 'shield'
pop
在返回数据帧时从数据框中删除系列。
无论如何都不能连续调用两次
在第 2 行中,您正在删除屏蔽
第三留置权你又流行了
删除 2nd,代码将按预期工作
df = pd.DataFrame([[1, 2], [4, 5], [7, 8]],
index=['cobra', 'viper', 'sidewinder'],
columns=['max_speed', 'shield'])
pd.DataFrame(df.pop('shield'))
这是一个 pandas 问题。
尝试在 Jupyter Notebook 中复制此内容:
In [1]: df = pd.DataFrame([[1, 2], [4, 5], [7, 8]],
index=['cobra', 'viper', 'sidewinder'],
columns=['max_speed', 'shield'])
df
In [2]: df.pop('shield') # Return as series.
In [3]: pd.DataFrame(df.pop('shield')) # Return as DataFrame.
然后逆序为
In[1]
In[3]
In[2]
为什么 3rd Out[-] 总是导致错误?
我经常遇到这种错误。这是缓存问题吗?冗余?出现这种错误的原因是什么?
我认为您的代码产生了预期的错误:
df = pd.DataFrame([[1, 2], [4, 5], [7, 8]],
index=['cobra', 'viper', 'sidewinder'],
columns=['max_speed', 'shield'])
此处 DataFrame.pop
从原始 Dataframe 中提取列 shield
,创建系列并从原始数据框中删除:
a = df.pop('shield') # Return as series.
print (a)
cobra 2
viper 5
sidewinder 8
Name: shield, dtype: int64
因此 df
中没有列在 pop
之后:
print (df)
max_speed
cobra 1
viper 4
sidewinder 7
获取列 shield
失败,因为 df
:
b = pd.DataFrame(df.pop('shield')) # Return as DataFrame.
print (b)
KeyError: 'shield'
pop
在返回数据帧时从数据框中删除系列。
无论如何都不能连续调用两次
在第 2 行中,您正在删除屏蔽
第三留置权你又流行了
删除 2nd,代码将按预期工作
df = pd.DataFrame([[1, 2], [4, 5], [7, 8]],
index=['cobra', 'viper', 'sidewinder'],
columns=['max_speed', 'shield'])
pd.DataFrame(df.pop('shield'))