我有一个数据帧:df = pd.DataFrame({'number': ['10', '20' , '30', '40'], 'condition': ['A', 'B', 'A', 'B']})df = number condition 0 10 A 1 20 B 2 30 A 3 40 B我想将一个函数应用于数字列中的每个元素,如下所示:df['number'] = df['number'].apply(lambda x: func(x))但是,即使我将函数应用于数字列,我希望函数也引用条件列,即伪代码:func(n):#if the value in correspo...
我有以下DataFrame:f_1 f_2 f_3 00:00:00 False False False 00:05:22 True False False 00:06:40 True False False 00:06:41 False False False 00:06:42 False False False 00:06:43 False False False 00:06:44 False False False 00:06:46 False False False 00:06:58 False False False我想计算一个系列是真的总持续时间.在这个例子中,唯一成为True一段时间的系列是f_1.目前,我使用以下代...
我有这样的DataFrame:1 2 1 3 1 4 2 4 5 1 1 4 1 3 5 3 1 4 1 3 1 3 1 4另一个像这样1 1 0 0 0 0我希望将它们与我得到的相乘1 2 0 0 0 0 2 4 0 0 0 0 1 3 0 0 0 0 1 3 0 0 0 0所以发生的事情是,每秒在第二个df中带有1的列将每个值乘以1,每个列用零将第一个数据帧中的所有列都更改为0.解决方法:使用底层数组可能最简单,让numpy做广播魔术:>>> df1.values * df2.values array([[1, 2...
我试图做一个朴素的贝叶斯,并在将一些数据加载到Pandas的数据帧后,describe函数捕获我想要的数据.我想从表格的每一列中捕捉均值和标准但我不确定如何做到这一点.我尝试过这样的事情:df.describe([mean]) df.describe(['mean']) df.describe().mean没有人工作.我能够在R中用类似的东西做类似的事情,但不知道如何在Python中做.有人可以提供一些建议吗?解决方法:请尝试这样的事情:df.describe(include='all').loc['mean']
我有一个像这样的数据集(额外的这里意味着多个额外的列):>>> df = pd.DataFrame({'id_police':['p123','p123','p123','b123','b123'],'dateeffe':['24/01/2018','24/11/2017','25/02/2018','24/02/2018','24/02/2018'],'date_fin':['23/03/2018','23/12/2017','26/03/2018','25/02/2018','25/02/2018'],'prime':[0,20,10,20,30],'prime2':[0,30,10,20,0],'extra':[12,12,13,15,20],... }) ###id_police dateeffe date_fin ...
当我创建一个DataFrame时,然后按列排序它似乎在迭代显示中排序(即无论repr给出),但是当我调用DataFrame.plot()函数时,它会绘制未排序的数组.调用matplotlib.pylab.plot可以正常工作.我怀疑这与聪明的指针重新排列没有被传递给绘图函数调用访问数据的任何东西有关…或者我可能只是在做一些愚蠢的事情.我在pandas 0.8.1(osx和linux with python2.7.something)和pandas 0.9.0(osx with python3.something)上尝试过这个.import pandas ...
我知道如何遍历pandas DataFrame的行:for id, value in df.iterrows():但现在我想以相反的顺序遍历行(id是数字,但与行号不一致).首先,我考虑对索引data.sort(升序=假)进行排序,然后运行相同的迭代过程,但它不起作用(它似乎仍然从较小的id变为较大的id). 我怎么能做到这一点?解决方法:通过DataFrame迭代通常是个坏主意,除非你使用Cython.如果你真的需要,你可以使用切片表示法来反转DataFrame:In [8]: import pandas as pdIn [9]:...
我想改变个别子情节的颜色:1.手动指定所需的颜色2.使用随机颜色 基本代码(摘自1)df = DataFrame(np.random.randn(1000, 4), index=ts.index, columns=list('ABCD'))df = df.cumsum()df.plot(subplots=True)plt.legend(loc='best') plt.show()我试过这个:colors = ['r','g','b','r'] #first optioncolors = list(['r','g','b','r']) #second optioncolors = plt.cm.Paired(np.linspace(0,1,4)) #...
我想以pythonic的方式知道如何在索引中给定间隔内的Pandas.Dataframe中选择元素.基本上我想知道是否有像pandas.Series.between这样的命令用于DataFrame.index. 例:df1 = pd.DataFrame(x, index=(1,2,…,100000000), columns=[‘A’,’B’,’C’]) df2 = df1.between(start=10, stop=100000)我认为很难发现任何与此相关的内容.解决方法:您可以使用带有loc的下标表示法,这是基于标签的索引:In [3]:df2 = df1.loc[10:100000] df2 Ou...
我有这些数据:time-stamp ccount A B C D E F G H I 2015-03-03T23:43:33+0000 0 0 0 0 0 0 0 0 0 0 2015-03-04T06:33:28+0000 0 0 0 0 0 0 0 0 0 0 2015-03-04T06:18:38+0000 0 0 0 0 0 0 0 0 0 0 2015-03-04T05:36:43+0000 0 0 0 1 0 0 0 0 0 0 2015-03-04T05:29:09+0000 0 0 0 1 0 0 0 ...
我想透镜数据框,如:dim1 Value_V Value_y instance 0 A_1 50.000000 0 instance200 1 A_2 6500.000000 1 instance200 2 A_3 50.000000 0 instance200 3 A_4 4305.922313 1 instance200进入具有分层列的数据框:A_1 A_2 A_3 .....Value_V Value_y Value_V Value_y Value_V Value_y instance200 5...
问题设置import pandas as pd df = pd.DataFrame(data={'Currency': {0: 111.23, 1: 321.23},'Int': {0: 23, 1: 3},'Rate': {0: 0.03030, 1: 0.09840}})生成以下DataFrameCurrency Int Rate 0 111.23 23 0.0303 1 321.23 3 0.0984我想使用如下所示的dict将非常特定的格式应用于数据框中的每一列:format_mapping={'Currency': '${:,.2f}', 'Int': '{:,.0f}', 'Rate': '{:.2f}%'}我知道我可以将applymap用于多列或...
我有一个Pandas DataFrame,它有11列,但我想将DataFrame从第1列而不是第0列拆分到第10列.我可以通过更复杂的方法实现它,而不是Pandas本身提供的方法.如何使用Pandas支持的DataFrame方法来实现? 数据是595行乘11列,我想得到:>>> import numpy as np >>> import pandas as pd >>> train_data = pd.DataFrame(my_data, columns=my_columns) >>> train_datastockid prich_m1 prich_m3 prich_m6 1 000002...
我有一个像这样的pandas数据帧:id comment1 its not proper 2 improvement needed 3 organization is proper 4 registration not done 5 timelines not proper对于这些单词[‘proper’,’organization’,’done’],我想计算它们发生的id的数量.所以输出应该是这样的:proper 3 organization 1 done 1我使用for循环尝试了这个:word_list = ['proper','organization','done'] final _list = ...
我想将数据框中的所有数字列转换为它们的绝对值,并且我这样做:df = df.abs()但是,它给出了错误:*** TypeError: bad operand type for abs(): 'unicode'如何解决这个问题?我真的不想手动指定列名解决方法:借用this question的答案,如何选择数字列? 假设你开始df = pd.DataFrame({'a': ['-1', '2'], 'b': [-1, 2]}) >>> df a b 0 -1 -1 1 2 2然后就做numerics = ['int16', 'int32', 'int64', 'float16', 'float3...