我想看看我的数据帧中的特定列中是否存在特定字符串.
我收到了错误
ValueError:Series的真值是不明确的.使用a.empty,a.bool(),a.item(),a.any()或a.all().
import pandas as pd
BabyDataSet = [('Bob', 968), ('Jessica', 155), ('Mary', 77), ('John', 578), ('Mel', 973)]
a = pd.DataFrame(data=BabyDataSet, columns=['Names', 'Births'])
if a['Names'].str.contains('Mel'):
print "Mel is there"
Run Code Online (Sandbox Code Playgroud) 我开始学习一些python(一直使用R)进行数据分析.我正在尝试使用创建两个图seaborn,但它会在第一个图上保留第二个图.我该如何阻止这种行为?
import seaborn as sns
iris = sns.load_dataset('iris')
length_plot = sns.barplot(x='sepal_length', y='species', data=iris).get_figure()
length_plot.savefig('ex1.pdf')
width_plot = sns.barplot(x='sepal_width', y='species', data=iris).get_figure()
width_plot.savefig('ex2.pdf')
Run Code Online (Sandbox Code Playgroud) 我需要对来自水文地质领域工作的大型数据集进行一些分析.我正在使用NumPy.我想知道我怎么做:
例如,我的数组的第二列乘以数字(例如5.2).然后
计算该列中数字的累积总和.
正如我所提到的,我只想处理特定列而不是整个数组.
Flexbox问题.希望有人可以帮助:)
我正在尝试构建一组由div组成的卡片,并将它们叠加在一起,就像使用position:absolute一样.
有没有办法让div使用flexbox在同一个空间中相互叠加?
我正在尝试模拟使用pandas来访问不断变化的文件.
我有一个文件读取一个csv文件,添加一行,然后休眠一段时间来模拟批量输入.
import pandas as pd
from time import sleep
import random
df2 = pd.DataFrame(data = [['test','trial']], index=None)
while True:
df = pd.read_csv('data.csv', header=None)
df.append(df2)
df.to_csv('data.csv', index=False)
sleep(random.uniform(0.025,0.3))
Run Code Online (Sandbox Code Playgroud)
第二个文件是通过输出数据帧的形状来检查数据的变化:
import pandas as pd
while True:
df = pd.read_csv('data.csv', header=None, names=['Name','DATE'])
print(df.shape)
Run Code Online (Sandbox Code Playgroud)
问题是当我得到DF的正确形状时,有一些时候它会输出(0x2).
即:
...
(10x2)
(10x2)
...
(10x2)
(0x2)
(11x2)
(11x2)
...
Run Code Online (Sandbox Code Playgroud)
这确实发生在一些但不是每次形状变化之间(文件添加到dataframe).
知道这种情况发生在第一个脚本打开文件以添加数据,而第二个脚本无法访问它时,因此(0x2),这会发生任何数据丢失吗?
我无法直接访问流,只能输出文件.或者还有其他可能的解决方案吗?
编辑
这样做的目的是仅加载新数据(我有一个代码可以做到这一点),并"即时"进行分析.一些分析将包括输出/秒,图形(类似于流图),以及一些其他数值计算.
最大的问题是我只能访问csv文件,我需要能够分析数据,而不会丢失或延迟.
我不清楚如何在Windows上安装Matplotlib的底图.也许问题很简单,我需要一些帮助.
我按照本教程.据我了解,第一,GEOS并PROJ4应安装,最后matplotlib-1.4.3.win-amd64-py2.7.exe应该执行.
我陷入了GEOS的困境.我下载了geos-3.5.0的源代码,"解压缩"它,然后我转到命令提示符,将目录更改为geos-3.5.0并运行:
export d://test
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
我有一个csv文件,是否可以使用usecols除最后一列之外的所有列,read_csv而无需列出所需的每一列.
例如,如果我有一个13列文件,我可以这样做usecols=[0,1,...,10,11].做usecols=[:-1]会给我语法错误?
还有另一种选择吗?我正在使用pandas 0.17
我有一系列子图,其中每个子图都有一个图例,我希望在每个子图之外与相邻的子图重叠.问题在于,传说是在自己的情节"顶部",但低于邻近的情节.传说不会将zorder作为参数,所以我不确定如何解决问题.这是我用过的代码:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2 * np.pi, 400)
y = np.sin(x ** 2)
f, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2, sharex='col', sharey='row')
f.subplots_adjust(hspace=0.15,wspace=0.1)
for i,j in enumerate([ax1,ax2,ax3,ax4],start=1):
j.set_title(r'%s'%i)
ax1.plot(x, y,label='curve')
ax2.scatter(x, y)
ax3.scatter(x, 2 * y ** 2 - 1, color='r')
ax4.plot(x, 2 * y ** 2 - 1, color='r')
bbox=(1.3, 1.)
ax1.legend(loc=1,bbox_to_anchor=bbox)
plt.savefig('example.png')
Run Code Online (Sandbox Code Playgroud)
我有一个脚本可以通过 folium 在地图上绘制多个点。有没有办法改变标记的形状和颜色?
通过python代码或者html文件来完成并不重要。
import folium
import json
map_osm = folium.Map(location=[37.7622, -122.4356], zoom_start=13)
geojson = {
"type": "Feature",
"geometry": {
"type": "MultiPoint",
"coordinates": [[-122.42436302145, 37.8004143219856], [-122.42699532676599, 37.80087263276921]],
},
"properties": {"prop0": "value0"}
}
map_osm.geo_json(geo_str=json.dumps(geojson))
map_osm.create_map(path='osm.html')
Run Code Online (Sandbox Code Playgroud)
我正在学习'熊猫'并试图绘制id列,但我得到一个错误AttributeError: Unknown property color_cycle和空图.该图仅显示在交互式shell中.当我作为脚本执行时,我得到相同的错误,除了图形没有出现.
以下是日志:
>>> import pandas as pd
>>> pd.set_option('display.mpl_style', 'default')
>>> df = pd.read_csv('2015.csv', parse_dates=['log_date'])
>>> employee_198 = df[df['employee_id'] == 198]
>>> print(employee_198)
id version company_id early_minutes employee_id late_minutes \
90724 91635 0 1 NaN 198 NaN
90725 91636 0 1 NaN 198 0:20:00
90726 91637 0 1 0:20:00 198 NaN
90727 91638 0 1 0:05:00 198 NaN
90728 91639 0 1 0:25:00 198 NaN
90729 91640 0 1 0:15:00 198 0:20:00
90730 …Run Code Online (Sandbox Code Playgroud)