要通过单个列过滤数据框(df),如果我们考虑男性和女性的数据,我们可能会: males = df[df[Gender]=='Male'] 问题1 – 但是,如果数据跨越多年,我想只看到2014年的男性呢? 在其他语言中,我可能会这样做: if A = "Male" and if B = "2014" then (除了我想这样做,并获得一个新的数据框对象的原始数据框的一个子集) 问题2:如何在循环中完成这项工作,并为每一个独特的年份和性别设置一个数据框对象(例如:2013-男性,2013-女性,2014-男性和2014-女性 for y in year: for g in gender: df = …..
我有关于HDF5性能和并发性的以下问题: HDF5是否支持并发写入访问? 除了并发性考虑之外,HDF5在I / O性能 ( 压缩率是否会影响性能)方面的性能如何? 由于我用Python使用HDF5,它的性能如何与Sqlite相比? 参考文献: http://www.sqlite.org/faq.html#q5 lockingNFS文件系统上的sqlite文件可能吗? http://pandas.pydata.org/
我有一个问题,从pandas系列对象的直方图,我不明白为什么它不工作。 代码之前工作正常,但现在没有。 这是我的一些代码(具体来说,我试图做一个直方图的pandas系列对象): type(dfj2_MARKET1['VSPD2_perc']) 输出结果: pandas.core.series.Series 这是我的绘图代码: fig, axes = plt.subplots(1, 7, figsize=(30,4)) axes[0].hist(dfj2_MARKET1['VSPD1_perc'],alpha=0.9, color='blue') axes[0].grid(True) axes[0].set_title(MARKET1 + ' 5-40 km / h') 错误信息: AttributeError Traceback (most recent call last) <ipython-input-75-3810c361db30> in <module>() 1 fig, axes = plt.subplots(1, 7, figsize=(30,4)) 2 —-> 3 axes[1].hist(dfj2_MARKET1['VSPD2_perc'],alpha=0.9, color='blue') 4 axes[1].grid(True) 5 axes[1].set_xlabel('Time spent [%]') C:\Python27\lib\site-packages\matplotlib\axes.pyc in hist(self, x, […]
我想在Pandas DataFrame移动一个列,但是我没有find一个方法来从文档中完成,而没有重写整个DF。 有谁知道如何做到这一点? dataframe: ## x1 x2 ##0 206 214 ##1 226 234 ##2 245 253 ##3 265 272 ##4 283 291 期望的输出: ## x1 x2 ##0 206 nan ##1 226 214 ##2 245 234 ##3 265 253 ##4 283 272 ##5 nan 291
我刚开始使用pandas / matplotlib来替代Excel来生成堆叠的条形图。 我遇到了一个问题 (1)默认颜色映射中只有5种颜色,所以如果我有5个以上的颜色,那么颜色会重复。 我怎样才能指定更多的颜色? 理想情况下,具有开始颜色和结束颜色的渐变,以及在两者之间dynamic生成n种颜色的方法? (2)颜色不是非常令人满意。 如何指定一组n种颜色的自定义设置? 或者,一个梯度也可以工作。 以下两个例子说明了上述两点: 4 from matplotlib import pyplot 5 from pandas import * 6 import random 7 8 x = [{i:random.randint(1,5)} for i in range(10)] 9 df = DataFrame(x) 10 11 df.plot(kind='bar', stacked=True) 而输出是这样的:
我如何获取多个列表,并将它们作为不同的列在Python数据框? 我试图将下面的列表读入pandasDataFrame的列中,但遇到了一些麻烦。 尝试1: 有三个列表,并将它们压缩在一起,并使用res = zip(lst1,lst2,lst3) 只产生一列 尝试2: percentile_list = pd.DataFrame({'lst1Tite' : [lst1], 'lst2Tite' : [lst2], 'lst3Tite':[lst3] }, columns=['lst1Tite','lst1Tite', 'lst1Tite']) – 产生一行三列(上面的方式),或者如果我转置它是3行1列 我如何获得100列(每个独立列表的长度)由3列(三个列表)pandas数据框?
我在Pandas中有数据框,例如: Col1 Col2 A 1 B 2 C 3 现在,如果我想添加一个名为Col3的列,并且该值是基于Col2的。 在公式中,如果Col2> 1,那么Col3是0,否则将是1.所以,在上面的例子中。 输出将是: Col1 Col2 Col3 A 1 1 B 2 0 C 3 0 任何想法如何实现这一目标?
我想通过每行的函数来过滤行,例如 def f(row): return sin(row['velocity'])/np.prod(['masses']) > 5 df = pandas.DataFrame(…) filtered = df[apply_to_all_rows(df, f)] 或者另一个更复杂,人为的例子, def g(row): if row['col1'].method1() == 1: val = row['col1'].method2() / row['col1'].method3(row['col3'], row['col4']) else: val = row['col2'].method5(row['col6']) return np.sin(val) df = pandas.DataFrame(…) filtered = df[apply_to_all_rows(df, g)] 我怎么能这样做?
我有一个有两列的pandas数据框。 我需要改变第一列的值而不影响第二列,并且只改变第一列值就可以得到整个dataframe。 我怎样才能在pandas中应用?
我是新来的python和大pandas。 我想获得一个tsv文件加载到pandas数据DataFrame 。 这是我正在尝试和我得到的错误: >>> df1 = DataFrame(csv.reader(open('c:/~/trainSetRel3.txt'), delimiter='\t')) Traceback (most recent call last): File "<pyshell#28>", line 1, in <module> df1 = DataFrame(csv.reader(open('c:/~/trainSetRel3.txt'), delimiter='\t')) File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 318, in __init__ raise PandasError('DataFrame constructor not properly called!') PandasError: DataFrame constructor not properly called!