草庐IT

dataframe

全部标签

python - Pandas ,通过列值的单调增加来拆分数据框

我有一个巨大的数据框,其中包含一个名为time的日期时间类型列和另一个名为dist的浮点型列,数据框已根据时间和dist进行排序。我想根据dist的单调递增将数据帧分成几个数据帧。拆分dtdist02016081111:101.012016081111:151.422016081112:151.832016081112:320.642016081112:340.852016081114:380.2进入dtdist02016081111:101.012016081111:151.422016081112:151.8dtdist02016081112:320.612016081112:34

python - 如何用python中DataFrame列的模式替换NA值?

我对Python(和本网站)完全陌生,目前正在尝试用它们的模式替换特定数据框列中的NA值。我尝试了各种无效的方法。请帮我找出我做错了什么:注意:我使用的所有列都是float64类型。我的所有代码都运行了,但是当我在列中使用df[cols_mode].isnull().sum()检查空值时,它保持不变。方法一:cols_mode=['race','goal','date','go_out','career_c']df[cols_mode].apply(lambdax:x.fillna(x.mode,inplace=True))我也尝试了Imputer方法,但遇到了同样的结果方法二:for

python - 返回索引元组和 .max() 值?

我正在尝试返回索引元组(下面的人名)和下面“%”列的最大值。当我创建一个Dataframe并尝试df['%'].max()Pandas总是只返回值而不是索引。但是,我想从“%”列中的索引和最大值的键值对创建一个元组。我确定这是一个新手问题,谢谢你帮助我!这是一些示例数据:Points_ScoredPossible_Points%FavoriateFoodJan602000.3PuddingJane872000.435PizzaBob542000.27SaladBubba422000.21SalsaJack982000.49AvacodoJohn452000.225BaconMike63

python - 在 pandas 中使用 groupby 进行 bool 运算

我想以特定方式使用pandas.groupby。给定一个包含两个bool列(分别称为col1和col2)和一个id列的DataFrame,我想按以下方式添加一列:对于每个条目,如果(col2为True)并且(col1对于任何具有相同ID的条目为True)则分配True。否则为假。我做了一个简单的例子:df=pd.DataFrame([[0,1,1,2,2,3,3],[False,False,False,False,False,False,True],[False,True,False,False,True,True,False]]).transpose()df.columns=['id

python - 在 Pandas 中查找数字列名称

我需要在Pandas中选择列名称中仅包含数值的列,例如:df=01234window_labelnext_statesids017.018.016.015.015.0dddddd13.0118.016.015.015.016.0dddddd13.0216.015.015.016.015.0dddddd13.0315.015.016.015.017.0dddddd13.0415.016.015.017.0NaNdddddd13.0所以我只需要选择前五列。像这样的东西:df[df.columns.isnumeric()]编辑我想到了解决方案:digit_column_names=[numf

python - Pandas 数据框中值的组合

这是我的Pandas数据框:ItemSupport_Count0BREAD41MILK42DIAPER43BEER3我将如何从第1列“项目”中生成2组和3组项目的所有可能的唯一组合。示例(2项集):(面包,牛奶),(面包,尿布),(面包,啤酒),(牛奶,尿布)等示例(3个项目集):(BREAD,MILK,DIAPER),(BREAD,MILK,BEER),(MILK,DIAPER,BEER)等 最佳答案 您可以使用itertools库:importitertoolslist(itertools.combinations(df['It

python - 日志文件到 Pandas Dataframe

我有日志文件,其中有很多行的形式:LogLevel[13/10/201500:30:00.650][MessageText]我的目标是将日志文件中的每一行转换成一个漂亮的数据框。我已经厌倦了这样做,通过拆分[字符上的行,但是我仍然没有得到一个整洁的数据框。我的代码:level=[]time=[]text=[]withopen(filename)asinf:forlineininf:parts=line.split('[')iflen(parts)>1:level=parts[0]time=parts[1]text=parts[2]print(parts[0],parts[1],part

python - 忽略索引的两个数据帧的快速减法(Python)

如何以最快的方式减去忽略索引的2个数据帧。例如,我想减去:d1=x10-3.1415930-3.1415930-3.1415931-2.4434611-2.443461来自d2=x21-2.4434612-1.7453293-1.0471984-0.34906620.349066我尝试过的:我可以这样做,例如:dsub=d1.reset_index(drop=True)-d2.reset_index(drop=True)但是,我想以最有效的方式进行减法。我一直在四处寻找答案,但我只看到了不考虑速度的解决方案。我该如何实现?编辑根据一些答案,以下是在我的机器上运行的一些时间:对于较小的数

python - 将 API 转换为 Pandas DataFrame

我想将API调用转换为pandasdataframe。此刻,API非常杂乱无章,我想合并pandas以使其更易于阅读/编辑/操作。我尝试了以下操作:r=requests.get('http://api.football-data.org/v1/competitions/398/teams')x=r.json()df=pd.read_json(x)printdf但收到:TypeError:ExpectedStringorUnicode 最佳答案 pd.read_json需要一个字符串。但是,r.json()返回一个字典对象。在您的情况

python - self 加入 Pandas

我想对Pandas数据框执行自连接,以便将某些行附加到原始行。每行都有一个标记“i”,指示应在右侧附加哪一行。d=pd.DataFrame(['A','B','C'],columns=['some_col'])d['i']=[2,1,1]In[17]:dOut[17]:some_coli0A21B12C1期望的输出:some_colisome_col_y0A2C1B1B2C1B也就是说,第2行附加到第0行,第1行附加到第1行,第1行附加到第2行(如i所示)。我的想法是pd.merge(d,d,left_index=True,right_on='i',how='left')但它会产生完全