Pandas 熊猫会在只包含NaN的行上移动

我想结合sklearn的插补和Panda的Ffill来填充缺失的数据。 这就是我的数据帧,df的样子 FeatA FeatB FeatC FeatD B A B D NaN NaN NaN NaN A A B C NaN A A A NaN B A A 我想使用Ffill将仅包含NaN(例如第2行)的行填充为上一个值 如果行仅包含少数N

Pandas 使用重采样()python绘制情绪分析输出的时间序列图

我有一组twitter提要的时间戳,它们各自的输出值存储在csv中。我需要将情绪值与6个小时周期进行聚合,并绘制一个时间序列图。请帮助,我正在尝试使用pandas中的重采样()来完成此操作 Sat Oct 01 00:43:02 +0000 2016,-0.5 Sat Oct 01 00:43:18 +0000 2016,0 Sat Oct 01 00:43:41 +0000 2016,-1 Sat Oct 01 00:43:54 +0000 2016,-0.5 Sat Oct 01 00:43

Pandas 对多个列重新采样

如何在多个列上对数据帧重新采样以获得新的统计数据 例如,我有一个以秒为索引的数据帧,它有两列(数量,数量),我想根据数量*数量将()重采样到分钟,然后重新采样到一个新列 IIUC需要使用一些聚合函数,如sum,mean,然后是多列: df = df.resample('T').sum() df['new'] = df.amount * df.quantities 感谢@Jezrael,在本例中,这将起作用,但假设我想获得数量和数量之间的相关性。欢迎使用StackOverflow。请花点时间阅读

Pandas 基于另一列的增量id';s值

从该数据帧: car_id month 93829 September 27483 April 48372 October 93829 December 93829 March 48372 February 27483 March 如何添加第三列,它基本上是car的新id,但却是一个增量列,如下所示: car_id month new_incremental_car_id 93829 September

Pandas 列的前五个非数字、非空、不同的值

如何从列中获取前五个非数字、非空、不同的值 例如,给出如下表 col1 ===== n1 1 2 n2 n3 n3 n4 n5 n5 n6 None 我想去 col1 ===== n1 n2 n3 n4 n5 您可以使用pd.to_numeric强制非NaN为NaN,然后反转遮罩并选择前5个唯一值: In [9]: df.loc[df.index.difference(pd.to_numeric(df['col1'], errors='c

Pandas 熊猫用给定组的中值填充缺失值

我有一个包含100多列和50万行的数据集。对于列Z,缺少一些值。我首先将数据分为两列(A,B),然后对于每组,我得到中位数(跳过那些NaN),然后我想用相应组的中位数填充Z中的NaN 我可以 df.groupby(["A","B"]).Z.median() 但它也有一些组中的NAN,我不知道如何通过组中位数将这些NAN填入Z。试试: df.groupby(["A","B"]).Z.apply(lambda x: x.fillna(x.median()))

Pandas 比较不同时间不同日期的数据

我在datetime数据框中有一系列数据,需要将一个日期和时间的数据与前一天的另一个时间进行比较。例如,在下面的例子中,我需要计算从2016-11-09 09 09:30:00到2016-11-10 21:30:00(基本上是从t@9:30到表中的下一个日期@21:30)的百分比变化。不幸的是,一个简单的滞后函数可能不起作用,因为记录的模式是不可预测的,并且所需行之间可能没有相同数量的记录 dates = pd.date_range('2016-11-09 09:30:00',periods=1

Pandas 数据透视-将列值转换为列名

我有一个df: pd.DataFrame({'time_period': {0: pd.Timestamp('2017-04-01 00:00:00'), 1: pd.Timestamp('2017-04-01 00:00:00'), 2: pd.Timestamp('2017-03-01 00:00:00'), 3: pd.Timestamp('2017-03-01 00:00:00')}, 'cost1': {0: 142.62999999999994, 1: 13

Pandas 根据列值的长度筛选数据帧行

我有一个熊猫数据框,如下所示: df = pd.DataFrame([ [1,2], [np.NaN,1], ['test string1', 5]], columns=['A','B'] ) df A B 0 1 2 1 NaN 1 2 test string1 5 df A B 0 1 2 1 NaN 1 In [47]: df

Pandas 无法获得用户的赔率-贝叶斯定理

我试图用混淆矩阵来解决这个非常基本的问题,但我的解决方案与正确的解决方案不匹配 问:假设我们有一项药物测试,可以在99%的时间内准确识别药物使用者,而在99%的非使用者中准确地检测出阴性结果。但只有0.3%的总体使用者使用这种药物 如果某个人的检测结果呈阳性,那么他成为该药物实际使用者的几率有多大 另外,isTP/(TP+FN)与p(A)p(B | A)/p(B)相同吗 我的做法: TP TN Total U

Pandas Python应用值

我有一个带有几个列的df:“小时”、“天”、“周”、“月”、“年”和“值”。我将“周”和“小时”与“值”分组,查找平均值() 现在我想把这个平均值作为一个单独的列,用于每周的每个小时。有什么想法吗? 提前谢谢 如果需要在原始数据中添加新列,我认为您需要: df['new'] = df.groupby(['week','hour']).value.transform('mean') 答对 了谢谢你,伙计!很高兴你能帮忙!祝你好运 df['new'] = df.groupby(['week','h

Pandas 使用通配符重命名列

我的df看起来像这样: Datum Zeit Temperatur[°C] Luftdruck Windgeschwindigkeit[m/s] Windrichtung[Grad] Relative Luftfeuchtigkeit[%] Globalstrahlung[W/m²] 现在,我想重命名以下列:# 其中,%是一个通配符。 当然,它不会像这样工作 列名的开头在日志数据中始终相同, 但是结尾是暂时变化的。您可以通过dict使用,对于通配符使用*

Pandas 数据帧中的倒计时列

我认为这是一个新问题,因为我在搜索中没有看到这一点。 是否可以在数据帧中创建倒计时 我有一列[a]显示1或0。 1是事件发生的日期。 我想创建一个B列,显示事件发生前4天到1的倒计时,因此它将显示事件发生当天的5 4 3 2 1和1 A B 0 0 0 0 0 5 0 4 0 3 0 2 1 1 0 0 0 0 0 0 有什么建议吗试试这个 s=df.A.iloc[::-1].eq(1).cumsum() s=s.groupby(s).cumcount()+1

Pandas 数据框中的NaN:当时间序列的第一个观测值为NaN时,用第一个可用值进行正面填充,否则结转上一个/上一个观测值

我正在从statsmodels执行ADF测试。值系列可能缺少对象。事实上,如果NaN的分数大于c,我就放弃分析。然而,如果该系列通过了“我得到了问题”,那么adfuller将无法处理丢失的数据。由于这是具有最小帧大小的训练数据,我想执行以下操作: 1) 如果x(t=0)=NaN,则查找下一个非NaN值(t>0) 2) 否则,如果x(t)=NaN,则x(t)=x(t-1) 因此,我在这里折衷我的第一个值,但确保输入数据始终具有相同的维度。或者,如果第一个值丢失,我可以使用dropna的limit选

Pandas 如何分配列变量';日期';使用文件名中的日期值(熊猫)

我有以下文件名 Filename = ('../BSOS Supplier Sales (01289), 02.04.2018 - 08.04.2018 (X).xlsx') 我想 1) 将文件读入df并 2) 分配一个新的列变量“Date”,其中包含上述文件名中捕获的日期(2018年4月2日-2018年4月8日 如何使用pd.read\u excel(文件名)完成此操作?您可以将内容读取到数据框中 df = pd.read_excel(Filename) 现在用正则表达式提取日期 impo

Pandas 读取文本文档中的相对行并将其转换为文本

使用Python3.6读取文本文件,以提取相对行,并将其转换为数据帧 工作原理:在文本文档中搜索短语并将该行转换为文本 import pandas as pd df = pd.DataFrame() list1 = [] list2 = [] with open('myfile.txt') as f: for lineno, line in enumerate(f, 1): if 'Project:' in line: line = line.s

Pandas xlsxwriter数据_标签背景色

我正在尝试创建一个列图,其中每个列都有不同的颜色。另外,我还需要添加“.data\u标签”-以便值可见 目前,我可以更改字体的颜色(在数据标签中)。但我找不到如何在标签上添加“背景色” 我想确保黑色文本将位于列顶部的白色背景上(列将有浅色和深色-所以,仅更改字体的颜色是不够的) 所以,这看起来像是列顶部有一个白色文本框。框内(“数据标签”)为黑色文本 注意:我使用的是堆叠图,所以我不能将文本放在列的外面(例如,在栏的顶部) 它的可能副本不会改变单元格的颜色。我想将标签添加到图表(白色背景-黑色文

Pandas 在多行中连接多个列的字符串?

我有两个日期框架,如下所示: import pandas as pd df1 = pd.DataFrame({'serialNo':['aaaa','bbbb','cccc','ffff','aaaa','bbbb','aaaa'], 'Name':['Sayonti','Ruchi','Tony','Gowtam','Toffee','Tom','Sayonti'], 'testName': [4402, 3747 ,5555,8

Pandas 比较两列,如果发现相等,则替换为无

以下命令将替换所有与行匹配的值 ndf.iloc[np.where(ndf.path3=='sys_bck_20190101.tar.gz')] = np.nan 我真正需要做的是,如果一个名为path4的列与第path3列匹配,则替换该列的值。这不起作用: ndf.iloc[np.where(ndf.path3==ndf.path4), ndf.path3] = np.nan 更新: 有一种方法“fillna”可用于axis='columns'。 是否有类似的方法将“NA”值写入重复列

Pandas-将日期转换为日期时间格式

我有一个具有日期值的列。我正在尝试将其转换为日期时间格式。下面给出的是我的数据集和我迄今为止尝试过的内容 date 2019-01-02 2019-01-03 我已将其转换为日期时间,如下所示: pd.to_datetime(df['date']) 但是,它仍然以yyyy-mm-dd格式显示。我正在尝试将其转换为“YYYY-MM-DD HH24:MI:SS”格式 预期产出: 2019-01-02 00:00:00 2019-01-03 00:00:00 您只需要更改表示吗?因为上面的时间戳

Pandas 数据帧中分组的优先级

我需要将字母从第2列选择为新的第2列。当有2个值时,我想根据第2列中的值给予优先级:A,B。当第1列确定有2个值时,我需要给A比B更多的选择优先级 Col_1 Col_2 new_col 1 A A 1 B A 2 B B 3 A A 4 B

为什么nunique会覆盖pandas中的分组列

这是我的数据的一个大大简化的版本 +---+---------+-----------+ ||用户|模块| id| +---+---------+-----------+ | 0 | 1 | 1 | | 1 | 1 | 2 | | 2 | 1 | 3 | | 3 | 2 | 1 | | 4 | 2 | 1 | | 5 | 2 |

Pandas 获取与groupby之后的列中的值对应的一列中的值

我有一个如下的数据帧 循环式时间开关 7 2 121 -0.027 7 2 146 0.021 7 2 211 -0.126 7 2 314 0.055 7 2 115 -0.023 7 2 414 0.004 5 2 216 0.003 5 2 286 -0.145 5 2 291 0.007 5 2 301 -0.001 5 2 316 0.02 5 2 371 -0.195 5 2 376 0.015 7 6 381 -0.001 7 6 386 0.016 7 6 421 -0.241

熊猫需要xlrd 1.1.0版,但样式框应具有xlrd 1.0.0版。如何正确设置,以便我同时需要styleframe和pandas?

重新安装xlrd 选中styleframe依赖关系树后, ---样式框: StyleFrame==2.0.4 颜色[要求:>=0.1.5,安装:0.1.5] jsonschema[必需:任何,安装:3.0.1] 属性[必需:>=17.4.0,已安装:18.1.0] 电阻[所需:>=0.14.0,已安装:0.15.3] 六[必需:任何,安装:1.11.0] setuptools[必需:任何,已安装:40.6.2] 六[必需:>=1.11.0,已安装:1.11.0] openpyxl[必需:>

Pandas 替换过冲的值

我在数据帧(df_Type4)中有一个列(DS),它的值过多,如下所示 16 100 17 10} 18 20} 21 200 22 10N 我想用0替换它的最后一位,比如说},这样数字就是100,就像智商N是5,这样数字就是105,依此类推 我试图提取最后一点,如下所示 df_Type4['DS'].str[2] 我想使用if,因为有多个值。但是,当我把它看作字符串时,它似乎不起作用。还有别的办法吗?试试: df_Type4['DS

Pandas 属性错误:';范围指数';对象没有属性';停止';

我正在使用一个库,它允许我在迭代时访问RangeIndex对象。我很难找到如何从此对象访问整数索引。如果我打印对象,我会看到“stop”参数似乎就是我想要的索引(尽管不确定)。但是,当我尝试打印stop参数时,会收到此错误消息。不过,当我查看源代码时,我发现RangeIndex的所有实例看起来都有这个参数。我尝试搜索如何获取RangeIndex的索引,但在这个特定对象上没有太多内容。您使用的是什么版本的pandas?您可能需要尝试\u停止\u stop已被弃用,取而代之的是stop,但对于较旧的

Pandas 不接受分类特征的决策树分类器

我有一个信用评分数据集,需要对客户是否会违约进行分类 LIMIT_BAL gender EDUCATION MARRIAGE AGE SEP_STATUS AUG_STATUS JUL_STATUS JUN_STATUS MAY_STATUS ... JUN_BAL MAY_BAL APR_BAL SEP_PAID AUG_PAID JUL_PAID JUN_PAID MAY_PAID APR_PAID default_0 0 20000

Pandas 在映射数据帧中的值时使用dict.get()

我遵循一本书中的代码,在数据框中,我有一列30~40个职业,其中一些没有提供,我想将未提供的职业映射到“未提供” 所以我创建了一本字典,如下所示 occ_mapping = {'INFORMATION REQUESTED PER BEST EFFORTS' : 'NOT PROVIDED', 'INFORMATION REQUESTED' : 'NOT PROVIDED','INFORMATION REQUESTED (BEST EFFORTS)' : 'NOT PROVIDED','C.E.O

Pandas 如何将多个多索引Dfs合并到一个df

因此,我有以下两个多索引Dfs: data = {('California', 0): 'LA', ('California', 1): 'SF', ('Texas', 0): 'HO', ('New York', 0): 'BX', ('New York', 1): 'NY'} df= pd.Series(data) df = pd.DataFrame(df) df #needs column name df.index.na

Pandas 是否以pa.fields列表的格式生成pyarrow架构?

有没有一种方法可以让我从文件中生成这种格式的pyarrow模式?我有一些文件有数百列,所以我无法手动键入 fields = [ pa.field('id', pa.int64()), pa.field('date', pa.timestamp('ns')), pa.field('name', pa.string()), pa.field('status', pa.dictionary(pa.int8(), pa.string(), ordered=False)

Pandas 从pd数据帧中提取值

我有一个dataframe列,如下所示 {“URL”:{“web”:{“发现”:“}},“颜色”:16734574,“家长id”:11,“姓名”:“叙事电影”,“id”:31,“位置”:13,“鼻涕虫”:“电影和视频/叙事电影”} 我想根据“slug”这个词提取信息。(在本例中为电影和视频/叙事电影)并将信息存储为新的数据帧列 我该怎么做 非常感谢这是一个包含不同类型条目的(嵌套)词典,因此将其视为数据帧列没有多大意义。您可以将其视为DataFrame行,字典键提供列名: import pand

Pandas 当我编写这段特定代码时,我的jupiter笔记本在给出任何输出(保持运行)之前需要花费很长时间

当我编写这段代码时,我的Jupiter笔记本会在提供任何输出之前持续运行大约10分钟。当然,您可以通过跳过pd.where()来提高速度 速度比较: for j in range(len(datelist)): tempmax.append((df.where(df['Date']==datelist[j])['Data_Value'].max())) tempmin.append((df.where(df['Date']==datelist[j])['Data_Value'].

Pandas 将火花DF转换为火花DF和其他方式-性能

尝试将具有8m记录的Spark DF转换为Pandas DF spark.conf.set("spark.sql.execution.arrow.enabled", "true") sourcePandas = srcDF.select("*").toPandas() 大约需要2分钟 还有从熊猫到火星的其他方式 finalDF = spark.createDataFrame(sourcePandas) 时间太长,永远不会结束 源熊猫 <class 'pandas.core.frame.

Pandas 从透视结果中删除双行列名

我想删除透视结果的“双行”索引头,因此下表: Course_ID CID-1 CID-2 CID-3 ID 1 3.5 2.0 3.0 2 4.0 3.0 NaN 看起来是这样的: ID CID-1 CID-2 CID-3 1 3.5 2.0 3.0 2 4.0 3.0 N

Pandas 如何用max()值填充数据帧

我有一个数据帧,每天7:00开始,22:10结束,间隔5分钟。 在df中大约有200天(周末和某些特定的日子除外) 我需要另一列,我们称之为“lastdayVolume”,其中包含前一天的最大容量值 例如,在2019-09-03年(7:00到22:10之间),单行中的最大体积值为50000,那么我需要在2019-09-04年的每一行中的“lastdayVolume”列中的值50000。 如何在不减少数据帧长度的情况下执行此操作?您尝试过吗 df.resample('1D', on='Date')

Pandas 如何绘制大熊猫历年月数据图 我有11年的每小时臭氧浓度数据。 有11个csv文件包含每天每小时的臭氧浓度 我能够读取中的所有文件,并将索引从日期转换为日期时间 对于我的图表: 我计算了每天8小时的最大平均值,然后平均每个月的值 我的新数据帧(df3)具有: datetime指数,由12年内一年中每个月的最后一天组成 它还有一列,包括平均MDA8值 我想为4月、5月和6月分别绘制3个散点图。(x轴=年份,y轴=当月平均MDA8) 然而,我被困在如何调用这些单独的月份和绘制年度数据上 最小样本 站点、日期、开始时间、值、变量、单位、质量、预校准、名称 31352010-01-01,0,13.0,臭氧,十亿分之一(ppb),Calexico-Ethel街 31352010-01-01,1,5.0,臭氧,十亿分之一(ppb),Calexico-Ethel街 31352010-01-01,2,11.0,臭氧,十亿分之一(ppb),Calexico-Ethel街 31352010-01-01,3,17.0,臭氧,十亿分之一(ppb),Calexico-Ethel街 31352010-01-01,5,16.0,臭氧,十亿分之一(ppb),Calexico-Ethel街

这里有一个查找类似CSV数据的链接 我在下面附上了一些代码: import pandas as pd import os import glob import matplotlib.pyplot as plt path = "C:/Users/blah" for f in glob.glob(os.path.join(path, "*.csv")): df = pd.read_csv(f, header = 0, index_col='date'

Pandas 熊猫合并两个数据帧创建数以百万计的记录

我遇到了一个以前从未发生过的问题,我想知道这是否是来自熊猫图书馆的一个bug 我有两个以下形状的数据框: df.shape=(27486,6) df_nova.shape=(24755,11) 我正在合并到左侧,因此它不应该创建更多已经存在的行: df=df.merge(df\u nova,how='left',left'u on='Phone',right'u on='Phone') 但是,DataFrame的形状现在是数百万行(列数正确: (14283635,16) 我的Pandas版本是P

Pandas 将整数转换为时间

我有这样的时间列,以秒为单位 100 100000 235900 我想转换成时间格式,即 00:01 01:00 23:59 我试过了 time = pd.to_datetime(temp['time'], format='%H%M%S').dt.time 但是它扔 ValueError: time data '0' does not match format '%H%M%S' (match) 用于将整数转换为字符串: time = pd.to_datetime(temp['time']

Pandas 如何将csv文件加载到SparkSession中

我正在网上学习PySpark。我搜索了一下,发现如何使用以下代码将csv文件读入Spark DataFrame import pandas as pd from pyspark.sql import SparkSession spark = SparkSession.builder.getOrCreate() spark_df = spark.read.csv('my_file.csv', header=True) pandas_df = spark_df.toPandas() 然而,在我正在

Pandas 按列中的每个值分组

我的数据集如下所示: 我想分别计算每种电影类型的每种性别的收视率 预期产出: 在预期输出中,我们按性别分组,并希望统计每个性别在特定电影类型中给出评级的次数(即使一部电影有更多的电影类型) 编码到现在,但没有给出正确的输出: df.groupby(['genre','gender']).agg({"rating":"count"}) 它没有给出正确的输出,因为它只对完全相同的类型进行分组。在这种情况下,只有电影6和电影7会喊出正确的结果 如何按“类型

Pandas 如何将python Int16作为smallint导入PostgreSQL?

我正在使用python中的psycopg2将pandasdataframe导入PostgreSQL数据库。数据框中若干列的元素的类型为。我是这样做的: df.to_sql(table_name, engine, method='multi', if_exists=if_exists_opt_loc, index=False) 写了这篇文章之后,我看到数据库中的列的类型是bigint,而只需要smallint来存储Int16值 如何进行导入以使列具有类型smallint?谢谢 还应添加dtype

Pandas 根据一列的值划分数据帧的行

我有一个数据帧: import pandas as pd df1 = pd.DataFrame({"Line":['Sales', 'Volume', 'ANR', 'EBT'], "a":[10, 4, 64, 32], "b":[4, 8, 32, 48], "c":[16, 4, 8, 24]}) 我想把每一行除以一个不同的常数。所以我想用“销售额”除以10,“销售量”除

Pandas 关于时间格式

我有一个包含时间列的数据帧,如下所示: time 2001-11-28 13:42:46 -0500 2001-10-10 22:14:00 -0400 我知道如何将它们转换为时间段,但我不理解-0500和-4000的含义 我使用的这个数据是与bug相关的开源数据。如果有人能帮助我,这将对我非常有帮助。有时区偏移,您可以用不同的方式处理: #convert to datetimes with different timezones df['time1'] = pd.to_datetime(df

Pandas 打印多个列以创建线条打印

我的表结构如下所示: 产品 2010年利润 2011年利润 2010年收入 2011年收入 勾选-如果你想根据年份进行绘图,那么将更容易有3列,一列用于年份,一列用于利润,另一列用于收入。否则,您的x值会混合到列名中,这没有多大用处。

Pandas 创建for循环,用于从pd数据帧提取特定行

我有一个14列169882行的数据框。数据框列的标题是 Columns: [Station, day, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, Z] “Station”列中总共有58个站点,命名范围从1到58,但它们是通过数据帧随机分布的 我编写下面的代码,从数据集中提取特定站点名称(例如下面代码中的站点1)的行,并保存到具有站点对应名称的excel文件中: grouped = df.groupby(df.Station) S1= group

上一页   1   2    3   4   5   6  ... 下一页 最后一页 共 280 页