我有一个以下形式的DataFrame:var1 var2 var3 day 0 -0.001284819 0.00138089 1.022781 1 1 -0.001310201 0.001377473 1.022626 1 2 -0.001330947 0.001374873 1.022477 2 3 -0.0013596 0.001430423 1.022385 2 4 -0.001361913 0.00144389 1.02228 3 5 -0.001371761 0.001440607 1.022161 3 6 -0.001393955 0.00143729 1.022017 4 7 -0...
我有两个不等维的数据框A和B.我想创建一个数据框C,使它只包含A和B之间唯一的行.我试图遵循这个解决方案(excluding rows from a pandas dataframe based on column value and not index value),但无法让它工作. 这是一个例子: 假设这是DF_A:Star_ID Loc_ID pmRA pmDE Field Jmag Hmag 2M00000032+5737103 4264 0.000000 0.000000 N7789 10.905 10.6352M00000068+5710233 4264 8....
在使用Python进行数据分析时,我们经常会看一个数据的分布,然后对数据进行处理。比如说有一个场景: 以下数据是某个产品的提前预定期:import pandas as pd import seaborn as sns import matplotlib.pyplot as plt import seaborn as sns import numpy as np %matplotlib inline data = (pd.read_csv('D:/Users/Merchants_portrait.csv')).astype('int') avg_days_befor = (data['avg_days_befor'].value_counts()).reset_index(...
我试图计算每种产品按月变化的百分比.这是我到目前为止所拥有的.我有一个涉及单个产品的DataFrame.我很难理解如何将计算应用于包含许多产品和许多月的结果集. 示例数据帧:product_desc activity_month prod_count product_a 1/1/2014 53 product_b 1/1/2014 42 product_c 1/1/2014 38 product_a 2/1/2014 26 product_b 2/1/2014 48 product_c ...
我正在尝试根据列中的条件重复DataFrame中的行值.如果列Change中的值= 1,那么我想重复A,B和C列中的值,直到下一个Change = 1.index = pandas.date_range('20000131', periods=5) columns = ['A', 'B', 'C', 'Change']data = {'A': pandas.Series([False, True, False, True, False], index=index), 'B': pandas.Series([True, True, False, False, False], index=index), 'C': pandas.Series([True, False, True, True, True], inde...
我有两个数据框,在第一列中具有相同的列名和相同的ID.除了ID列之外,在一个DataFrame中包含值的每个单元格在另一个DataFrame中包含NaN.这是他们的样子的一个例子:ID Cat1 Cat2 Cat3 1 NaN 75 NaN 2 61 NaN 84 3 NaN NaN NaNID Cat1 Cat2 Cat3 1 54 NaN 44 2 NaN 38 NaN 3 49 50 53我想将它们合并到一个DataFrame中,同时保持相同的...
我在这样的pandas中有一个DataFrame:a b c A 1 2 3 B 4 5 6 C 7 8 9我想提取其单元格值大于6的索引名称和列名称对. 换句话说,我想获得[["B","c"], ["C","a"], ["C","b"], ["C","c"]]有没有聪明的方法来做到这一点?解决方法:您可以使用stack将帧展平为一系列,使用布尔索引来选择所需的术语,最后将结果索引转换为列表:s = df.stack() ii = s[s >= 6].index.tolist()例如:>>> s = df.stack() >>> s A a 1b 2c 3 B a ...
由于显而易见的原因,我想在更新后将列的dtypes保持为int.任何想法为什么这不能按预期工作?import pandas as pddf1 = pd.DataFrame([{'a': 1, 'b': 2, 'c': 'foo'},{'a': 3, 'b': 4, 'c': 'baz'}, ])df2 = pd.DataFrame([{'a': 1, 'b': 8, 'c': 'bar'}, ])print 'dtypes before update:\n%s\n%s' % (df1.dtypes, df2.dtypes)df1.update(df2)print '\ndtypes after update:\n%s\n%s' % (df1.dtypes, df2.dtypes)输出如下所示:dtype...
我需要将DataFrame列中的单元格初始化为列表.df['some_col'] = [[] for _ in no_of_rows]我想知道在时间效率方面有更好的方法吗?解决方法:因为您正在寻找时间效率,低于一些基准.我认为列表理解已经非常快,可以创建列表对象的空列表,但是您可以使用itertools.repeat挤出一个边际改进.在插入件上,应用速度慢3倍,因为它循环:import pandas as pd from itertools import repeat df = pd.DataFrame({"A":np.arange(100000)})%timeit d...
我有一个DataFrame:Amount dwy bmd Portfolio EUR GBP JPY USD EUR GBP JPY USD EUR GBP JPY USD date 2016-05-13 100 200 300 400 -0.5 0.5 0 0.8 3.8 3 0 3我想把它转移到这个:date ccy amt dwy bmd 2016-05-13 EUR ...
我想在pandas数据框或面板中存储一些多维数据,以便我能够返回例如: >赛跑者A,比赛A的所有时间> 2015年比赛A的所有时间(和名称)都说 示例数据看起来像这样,请注意并非所有参赛者都拥有所有年份或所有比赛的数据. 任何人都可以建议用熊猫或任何其他方式做到这一点的好方法吗?Name | Gender | Age Runner A | Male | 35Race AYear | Time 2015 | 2:35:09 2014 | 2:47:342013 | 2:50:12Race BYear | Time2013 | 1:32:07Ru...
考虑一个基本数据框(使用Pandas):testDf = pandas.DataFrame({'c':[1,2],'b':[2,2],'a':[3,4]})结果给出:a b c 0 3 2 1 1 4 2 2代替:c b a 0 1 2 3 1 2 2 4为什么按字母顺序排序?我想要第二个结果.解决方法:您需要将参数列添加到DataFrame构造函数,因为dict是无序的:print (pd.DataFrame({'c':[1,2],'b':[2,2],'a':[3,4]}, columns=['c','b','a']))c b a 0 1 2 3 1 2 2 4Dataframe:Along with the d...
我有一个日期时间列,具有相当随机的时间增量,格式为:time 2016-07-08 11:29:30 2016-07-08 11:30:02现在我将它转换为datetime:df['time2'] = pd.to_datetime(df['time'])然后我想用matplotlib绘制它,但它不起作用:plt.plot(df.['time'],df['y'])我已经尝试将它转换为int,但是在绘图时我无法弄清楚如何格式化它df['time_int'] = df['time2'].astype(np.int64)任何帮助都是极好的!解决方法:我想你可以使用Series.plot,所以从列时...
我有一个看起来像这样的数据框:lon lat -77.487 39.044 -77.487 39.044 -122.031 37.354 -77.487 39.044我想将这些lon-lat配对与结果计数分组,如下所示:lon lat count -77.487 39.044 3 -122.031 37.354 1我怎样才能做到这一点? group()函数仅显示允许按一列分组.解决方法:您可以使用groupby.size并重命名创建的列,然后重置reset_index以返回所需的数据帧.print(df.groupby(['lon', 'la...
Input DF:ID Time Value 0 1 5 0 2 7 0 3 8 1 1 1 1 2 4 1 3 6Output DF:1 2 3 0 5 7 8 1 1 4 6 目标:我目前有类似于输入DF的东西,我希望将其转换为输出DF. >输出DF的第1行等于唯一的时间数据点.>输出DF的第1列等于唯一ID.剩余的>中心点等于给定id /时间的Value元素 我最接近的是通过做这样的事情:group_by = input_df.groupby('ID').agg({'Value':np.mean})要么:group_by = input_df.g...