当我使用seaborn“白色”样式生成绘图时,我看到主要刻度标签,但没有看到任何主要刻度线。
使用...将主要刻度线设置得更大
%matplotlib inline
import seaborn as sns
import matplotlib.pyplot as plt
sns.set_style('white', {'axes.linewidth': 0.5})
plt.rcParams['xtick.major.size'] = 20
plt.rcParams['xtick.major.width'] = 4
fig, ax = plt.subplots()
plt.show()
Run Code Online (Sandbox Code Playgroud)
...没有效果。
我找不到任何可以使刻度线可见/不可见的选项。
有人有任何线索吗?
对isinstance的调用返回True,但在一个系列中的地图内部返回False(以及在数据框上的applymap)...
import pandas as pd
import pytz
s = pd.Series([pd.Timestamp(2018,5,11,6,0,0,0, pytz.timezone('UTC'))])
s
0 2018-05-11 06:00:00+00:00
dtype: datetime64[ns, UTC]
Run Code Online (Sandbox Code Playgroud)
对此系列中单个值的isinstance调用会产生True.
isinstance(s.iloc[0], pd.Timestamp)
True
Run Code Online (Sandbox Code Playgroud)
在系列的地图上,它给出了True.
s.map(lambda x: isinstance(x, pd.Timestamp)).iloc[0]
True
Run Code Online (Sandbox Code Playgroud)
但是如果我们尝试一些取决于该值的东西,比如转换为字符串......
s.map(lambda x: x.isoformat() if isinstance(x, pd.Timestamp) else x).iloc[0]
Timestamp('2018-05-11 06:00:00+0000', tz='UTC')
Run Code Online (Sandbox Code Playgroud)
...它似乎返回了False并且没有调用方法isoformat(实际的方法调用是无关紧要的,因为它没有被调用).
当两个数据帧连接在一起时(使用concat),默认情况下,concat会创建一个新的数据框,其中包含两者的列的并集,并使用nan设置结果中任何缺少列的值.例如...
import pandas as pd
a = pd.DataFrame({'A':range(5), 'B':range(5)})
b = pd.DataFrame({'A':range(5)})
pd.concat([a , b], sort=False)
A B
0 0 0.0
1 1 1.0
...
3 3 NaN
4 4 NaN
Run Code Online (Sandbox Code Playgroud)
但如果其中一个数据帧中缺少的列包含时间戳,则会中断...
a = pd.DataFrame({'A':range(5), 'B':[pd.Timestamp.utcnow() for _ in range(5)]})
b = pd.DataFrame({'A':range(5)})
pd.concat([a , b], sort=False)
Run Code Online (Sandbox Code Playgroud)
抛出"AttributeError:'NoneType'对象没有属性'_can_consolidate'".
Python 3.6.5; 熊猫0.23; Windows 7 x64
这是已知的问题吗?
他们是否知道任何变通方法?