如何向pandas.DataFrame的子类添加属性?
我想向DataFrame的子类添加属性,但出现了一个错误: >>> import pandas as pd >>>class Foo(pd.DataFrame): ... def __init__(self): ... self.bar=None ... >>> Foo() RuntimeError: maximum recursion depth exceeded 您希望这样写: class
我想向DataFrame的子类添加属性,但出现了一个错误: >>> import pandas as pd >>>class Foo(pd.DataFrame): ... def __init__(self): ... self.bar=None ... >>> Foo() RuntimeError: maximum recursion depth exceeded 您希望这样写: class
我有两个不同列数和行数的CSV文件。第一个CSV文件有M列和N行,第二个CSV文件有H列和G行。某些列具有相同的名称 我希望将这两个属性组合到具有以下属性的数据帧中: N+G行 (M,H)柱的并集 如果列A是第一个CSV文件的元素,但不是第二个CSV文件的元素,则数据框中A的前N个条目中的值应与第一个CSV中的值相同,其余的(因为第二个CSV中没有A数据)应为NA 以下是一个例子: CSV1 City, Population, Zagreb, 700000, Rijeka, 142000
我有一个熊猫数据帧,它还没有索引(只是人工的1,2,3,…索引) “存储”、“样式”列为字符串,“颜色”、“大小”列为长整型。 它们本身都不是唯一的,但它们的串联是唯一的 我想连接它们以生成索引,但是 df2['store']+df2['style']+str(df2['color'])+str(df2['size']) 或 两者都不起作用。我认为它需要整个列,强制它成为一个字符串并连接起来,这会导致奇怪的符号。合并不能正常工作 连接字符串列和长列的正确方法是什么?这应该是: df2['sto
请参阅下面的代码示例和输出。使用groupby我能够识别每天的最大“询问量-投标量-总量”值 我还想知道每天发生这种情况的时间。基本上我不想因为时间戳而浪费时间。请问我该怎么做 在groupby对象上使用以索引回原始df,以便您可以查看与这些最大值相关的完整分辨率时间戳: data.loc[grouped['Ask Volume Bid Volumne Total'].idxmax()] 你可以做data.loc[grouped['Ask Volume Bid Volume Total'].
我有一个数据框和一个列表。我想迭代列表中的元素,找到它们在dataframe中的位置,然后将其存储到新的dataframe中 my_list = ['1','2','3','4','5'] df1 = pd.DataFrame(my_list, columns=['Num']) 数据帧:df1 Num 0 1 1 2 2 3 3 4 4 5
如何仅提取格式化为1900-01-01 00:32:59的datetime64[ns]列的时间部分,并将其转换为总秒数 在本例中,我希望最终结果是1979,以秒为单位,我们正好是(32*60+59)秒,距离1900-01-01 00:00:00您可以使用+++: 或++: 或++ 您可以使用+++: 或++: 或++ 可能的重复可能的重复 df = pd.DataFrame({"date": ["1900-01-01 00:32:59"]}) df['date'] = pd.to_datetim
我有一个问题,我有一个数据框数据,有多个列,我想在数据框中创建一个变量过滤器,如果activation_date为null,则分配值1,否则为0 我已经写了这段代码,但是没有得到结果,不管日期是否仍然存在,一切都是0 data['filter'] = [0 if x is not None else 1 for x in data['activation_dt']] 我认为您需要检查None或NaNs,然后通过astype(int)将True转换为1,将False转换为0: data = pd
假设我有两个数据帧(df1和df2): 我想按df2的字段对df1的列进行排序。我预计结果如下: A1 C1 A2 B2 C2 0 1.0 2.0 3.0 4.0 5.0 1 1.0 2.0 3.0 4.0 5.0 2 1.0 2.0 3.0 4.0 5.0 3 1.0 2.0 3.0 4.0 5.0 4 1.0 2.0 3.0 4.0 5.0 换句话说,我如何按照以下方式对df1的列进行排序: df2.sort(col
我不熟悉python 3和熊猫。我试图在数据框中添加一个新列,其中的值是两个现有列之间的差值。 我目前的代码是: import pandas as pd import io from io import StringIO x="""a,b,c 1,2,3 4,5,6 7,8,9""" with StringIO(x) as df: new=pd.read_csv(df) print (new) y=new.copy() y.loc[:,"d"]=0 # My lambda fu
我有一个现有的df。我想用RSI列来扩展它。 RSI使用返回数字的函数RSI_func(close)计算。我试过官方的代码(参见编码2)和3),以及编码7)和许多其他示例,但都无法实现。 我试过了,当然没有编号: 1) df['RSI'] = rsi_func(df['close']) 2) df.assign(RSI=lambda x: rsi_func(close)) 3a) rsi = rsi_func(df['close']) 3b) print(rs
在数据帧中 item_#, status, field1, field2 123, "A", "val1", "val2" 223, "B", "val3", "val4" 123, "B", "val5", "val6" 323, "A", "val7", "val8" 我想要的是同时具有状态“A”和状态“B”的项的列表。 类似于df.groupby('item#')[(df.status.isin(['A','B'
我正试图从硬币目录中搜集数据 有。我需要进入数据帧 到目前为止,我有以下代码: import bs4 as bs import urllib.request import pandas as pd source = urllib.request.urlopen('http://www.gcoins.net/en/catalog/view/45518').read() soup = bs.BeautifulSoup(source,'lxml') table = soup.find('table
我有2个数据帧,我想合并它们。我的连接键是索引,它们是第三个数据帧 两个数据帧: df1 = pd.DataFrame({'A' : [1,2,3] }) df2 = pd.DataFrame({'B' : ['A','B','C']}) 包含索引列表的数据帧: df3 = pd.DataFrame({'C' :[1], 'D' :[2]}) df3 = df3.set_index(['C','D']) 期望输出: A B 0 2 C 使用列表中的元组: 安装程序 使用
我有一个数据框,如下所示: index client year value 1 A 2011 5 2 A 2012 10 ... 8 A 2018 7 9 B 2011 14 10 B 2012 54 ... ... Z 2011 5 2011 2 2012 2.5 2013 3 2014 3.5 ... 2018 5.5
我在拼花地板中存储了约5.5GB的数据集。我在该数据集中有一个系列account\u language,它最初的类型是object(string) 有人能解释一下,为什么在将序列转换为分类后,进行同样的计算要花费更长的时间?我是否转换为“分类”错误 df = dd.read_parquet('dataset', engine='fastparquet') %time pre_cat_val_counts = df.account_language.value_counts().compute(
我是个新手,但我使用的数据框架如下所示: ID Tag 123 Asset Class > Equity 123 Inquiry Type > Demonstration 123 Inquiry Topic > Holdings 456 Asset Class > Fixed Income 456 Inquiry Type > BF 456 Inquiry Topic &g
假设我依次得到两个panda数据帧,df_base和df_referencement。两者都有标准的数值索引,其值0,1,2,…df_referencement有一列base_id,它引用df_base的索引——在数据库术语中,这将是外键 每次获得这些新数据帧时,我都希望将它们附加到相应的sqlite表中 CREATE TABLE base_table ( "ID" INTEGER PRIMARY KEY AUTOINCREMENT, "COL1" FLOAT, "COL2" FLO
我正在尝试用以下长格式重塑熊猫数据帧: ISO3 Indicator Year Value FRA Pop. density 2003 113,6 FRA Pop. density 2004 114,5 FRA Pop. density 2005 115,4 USA Pop. density 2003 31,7 USA Pop. density 2004 32,0 USA
我有一个如下所示的数据帧: Type Brand A Brand B Type A ID A ID AA Type B ID A ID AA Type A ID B ID BB Type B ID B ID BB Type B ID C ID CC Type A ID C ID DD Type B ID D ID EE Type A ID D ID FF 我要删除或消除行数据两个品牌列和类型列(必须成对) 我的期望结果如下所
许多人已经问过同样的问题。但是没有找到这些问题的确切答案,这些答案对我也没有帮助 我正在尝试安装pandas,但安装失败,并出现以下错误。我正在使用windows 2012和python 3.4。我还安装了visual studio 2017 当我用水蟒做同样的实验时,效果很好 (env_one_site) D:\workspace\site> pip install pandas DEPRECATION: Python 3.4 support has been deprecate
我想尝试将许多无法立即放入内存的大熊猫数据帧保存到单个拼花地板文件中。我们希望在磁盘上有一个大拼花文件,以便快速从这个大文件中获取所需的列 具体来说,我们有约200个小拼花文件,每个文件有约100列(基因)和200万行(细胞)。磁盘上的每个拼花都非常小,对于所有约200个拼花文件,其大小分别为~40MB和~8GB。数据非常稀疏(大于90%的值为零),Parquet很好地将磁盘上的数据压缩到一个小尺寸 由于数据集是稀疏的,我们可以使用Pandas/Scipy稀疏数组将所有25000个基因(列)和2
我正在为客户创建代码,我想知道是否可以修改创建的代码索引的顺序 将熊猫作为pd导入 数据={ “日期”:2018-01-02T11:55:54、“2018-01-02T13:31:52”, “2018-01-02T13:34:38”,“2018-01-02T13:38:30”, “2018-01-02T13:44:06”], ‘客户’:[‘彼得’、‘阿诺德’、‘贝托’、‘彼得’、‘布兰登’] } df=pd.DataFrame(数据) 输出: 与客户约会 0 2018-01-02T11:55:5
我试图通过分组几列来找出滚动平均值。下面给出了我的数据集的外观: category, sub_category,value fruit, apple, 10 fruit, apple, 2 fruit, apple, 5 fruit, apple, 1 fruit, banana, 3 fruit, orange, 5 fruit, orange, 5 fruit, orange, 3 fruit, orange, 8 预期产出: category, sub_category,value, r
我使用以前的Pandas版本(不确定是哪一个,但可能是0.25.3)将两个数据帧保存到搁置数据库中,并且使用Pandas 0.25.3从搁置文件中读取它们没有问题。但是,我无法用最新的Pandas(1.0.0,由Pandas印刷。版本)阅读它们。我得到以下错误: AttributeError: Can't get attribute 'FrozenNDArray' on <module 'pandas.core.indexes.frozen' from 'local/virtualenv.
我正在尝试将.XPT文件读入数据帧。如果文件是本地文件,但如果文件存储在GCS中,则此功能不起作用 我使用以下方式将样本数据上传至地面军事系统: !旋度-Lhttps://wwwn.cdc.gov/Nchs/Nhanes/2017-2018/DEMO_J.XPT |gsutil cp-gs://my bucket/sas_sample/Nchs/Nhanes/2017-2018/DEMO_J.XPT 我还通过以下方式在本地下载了该文件: mkdir数据 !卷曲https://wwwn.cdc.
请注意,df.info()是结果中的第三项。然而,这首先呈现信息的输出,然后呈现其余的项。如何让它按指定顺序打印输出 但是,如果我显式调用display(不带列表),它将正确呈现: def inspect_df(df): results = (df.head(), df.tail(), df.info(), df.describe(include='all'),) for result in results: display(result) df = pd.D
我知道这个问题以各种形式存在,但在网上搜索了几天/几个小时后,我仍然没有找到任何解决我问题的方法 这是我的笔记本: import numpy as np import pandas as pd X = pd.read_csv('../input/web-traffic-time-series-forecasting/train_1.csv.zip') X = X.drop('Page', axis=1) X.fillna(0, inplace=True, axis=0) X_sliced =
我有一个如下所示的数据帧。这是一个医生预约的数据 Doctor Appointment Show A 2020-01-18 12:00:00 Yes A 2020-01-18 12:30:00 Yes A 2020-01-18 13:00:00 No A 2020-01-18 13:30:00 Yes B 20
我有一个带有变量(E)的数据帧,其中数据帧中的值是bin的左边缘,每个bin的一组占用率(n)(以及不确定性的平方(v))。目前,这些箱子以100(通常)的步数从200分到2000分,然后再分到+inf。然而,这些箱子对于我需要执行的绘图非常合适,我需要将它们重新分到200、300、400、600、1000、+inf 关键点:因为我从一个源读取了几组类似的数据,所以并非所有的数据帧都有条目,例如bin 600-700,即一个数据帧中缺少一些行,而另一个数据帧可能有条目。我需要根据新的BIN对n和
给定一个数据帧。 如何在列“a”上执行groupby,以便将所有以相同字符串开头的行分组在一起。比较部分的末尾是。。(这里y_s1和y_s2组合在一起,而不是x_s1) 下面是一个简单的例子: raw_data = {'a': ['y_s2', 'y_s1', 'x_s1'], 'b': [1,2,3]} df = pd.DataFrame(raw_data, columns = ['a', 'b']) 大概是这样的: grp = df.groupby(df['a'].str[:2]) ##
我有这样一个情节: import pandas as pd import pandas_datareader as web import datetime as dt from datetime import timedelta import matplotlib.pyplot as plt #get the data start_date = pd.to_datetime('2019-11-1') end_date = pd.datetime.today() df = web.DataRea
我想把所有这些都转换成一个段落。。。。 请帮帮我。您可以使用pd.Series sum连接字符串: df_lyrics['Lyrics'] 0 \n\n--Male--\nAaaaa Aaaaa\n--Female--\nAaaaaa\... 1 \n\n--Male1--\nAnkhiyon Hi Ankhiyon Mein\nRati... 2 \n\n--Male1--\nAray Peeli Chotiyaan,\nHawaeyn ... 3
我正处于学习熊猫的最初几周,需要帮助解决我遇到的一个问题。 我有两个数据帧,如下所示: df1 = pd.DataFrame({ 'City': ['Chicago','Atlanta', 'Dallas', 'Atlanta', 'Chicago', 'Boston', 'Dallas','El Paso','Atlanta'], 'State': ['IL','GA','TX','GA','IL','MA','TX','TX','GA'], 'Population':
illed:(我想我可以确定其他nan的位置,然后再将它们设置为nan(有更好的主意吗?)(请参见有问题的编辑)否则:是否有一种矢量化方法来实现此get_last_valid(…)? A1 2019-06-17 00:00:00 NaN 2019-06-17 00:00:01 1.20 2019-06-17 00:01:59 1.00 2019-06-17
这个问题类似于,但在我的例子中,我需要应用一个函数,为每个组返回一个序列而不是一个值-这个问题是关于使用sum进行聚合,但我需要使用rank(因此区别类似于agg和transform) 我有一段时间以来公司的数据。这将生成一些类似于我的用例的虚拟数据: import numpy as np import pandas as pd dates = pd.date_range('1926', '2020', freq='M') ndates = len(dates) nfirms = 5000 c
我有各国相互贸易的数据。我已经按照月份划分了主文件,并获得了2019年的12个csv文件。1月份csv数据样本如下: reporter partner year month trade 0 Albania Argentina 2019 01 515256 1 Albania Australia 2019 01 398336 2 Albania Austria 2019 01
我有两个csv文件。一个主文件file1和一个file2,其中的行需要在file1中删除。 删除这些行后,将在mainnumber上执行groupby,同时保存总和和计数 不幸的是,由于进程被终止,我的数据集对于32GB内存来说似乎太大了。我只有这个服务器可用,没有其他工作人员 有没有可能从内存的角度优化我的代码? 也许可以通过阅读部分file2.csv import pandas as pd import dask.dataframe as dd def custom_cut(partiti
假设我有一系列数据 import numpy as np import pandas as pd import matplotlib.pyplot as plt n = 1000 srs = pd.Series(np.random.random(n)) 现在,我希望通过该数据滚动高斯滤波器,使权重如下所示: window = 100 x = np.arange(window) mu = 60 sigma = 0.2 y = np.exp(-(x-mu)**2 / 2*sigma**2)
我有一个最早日期为1995-01-09和最晚日期为2019-11-20的数据框,日期之间的持续时间为9082天 我试图做的是将数据帧划分为100个时间段,每个时间段的行数可能不同 movieId time 21 1995-01-09 47 1995-01-09 11 200-01-29 45 1996-01-29 18 2019-11-20 那么: df['time_group'] = pd.cut(df['time'], bins=100)
我有两个数据帧: df1 = pd.DataFrame({'dateRep': ['2020-09-10', '2020-08-10', '2020-07-10', '2020-24-03', '2020-23-03', '2020-22-03'], 'cases': [271, 321, 137, 8, 0, 1],
我正在做一个机器学习项目。我试图为输出布尔值的数据集构建一个模型。这是我第一次使用手线布尔输出,我不知道该怎么处理它 我的数据集截图: 您可以使用。另一种方法是使用单个循环手动将布尔标签转换为整数,然后将其用于训练。我需要布尔响应
我正在尝试使用to_SQL将数据帧上载到SQL Server 由于我正在处理的数据包含一个时间戳列,其范围从ca 1900到8999,因此我使用了“越界”解决方法。简而言之,解决方法是使用 这与预期的一样,数据帧现在包含正确的编码日期esPeriods 以下是df.dtypes measureDate period[S] 当我尝试像这样上传数据帧时 df.to_sql(db_table, engine, if_exists='append', chunksize=500000)
我有一个包含一些列的数据框,我没有找到按如下方式排列行的方法: 我需要按字段标签顺序排列数据帧(如组) 输入 所需订单: I category tags 0 C #29-106 1 B #25-74 2 F #18-109 3 C #26-86 0 B #29-93 1 D #26-170 2 B #26-108 3 B #28-145 0 C #21-102 1 D #28-145 2 A #30-125
我有一个数据帧df: prds 0 E01 1 E02 2 E03 3 E04 4 E01 5 E02 6 E03 7 E04 8 F01 9 F02 10 F03 11 F04 12 F05 我想在另一列“匹配”中计算“prds”列中的每个组,因此: prds match 0 E01 1 1 E02 2 2 E03 3 3 E04 4 4 E01
我有一个csv文件(data.csv),如下所示: DF = read_csv(pth).T DF 0 1 2 A 1.50 2020-1-1 John B 2.70 2020-1-2 Jeff C 2,481 2020-1-3 Ruben D 1,569 2020-1-4 Cath E 2.15 2020-1-5 James DF[0] = DF[0].str.replace(",&quo
我有一个文本文件,textfile.qdp: 要跳过的行1 要跳过的行2 要跳过的行3 1.25 0.6499976 2.24733017E-2 2.07460159E-3 3.01663446 1.89463757E-2 1.48296626E-2 2.98285842 2.0999990.199999888 7.33829737E-26.63989689E-3.48941302 3.8440533E-2 6.34965161E-3 3.44462299 2.5 0.20000048 0.11
为b列返回我False,而我想得到NaN import pandas as pd import numpy as np pd.DataFrame( {'a':[0,1,2,3], 'b':[np.nan, np.nan, np.nan,3]} ).apply(lambda x: x> 1) 期望 a b 0 False False 1 False False 2 True False 3 True True 我真的希望
考虑下面的数据帧 data_a = {'A':[1,2,3],'B':[4,5,6]} df_a = pd.DataFrame(data_a) data_b = {'C':[7,8,9],'D':[10,11,12]} df_b = pd.DataFrame(data_b) 我想将这两个数据帧导出到一个.csv文件中,在该文件中它们直接垂直堆叠。如果你这样做 pd.concat([df_a,df_b],axis=0).to_csv('test.csv') df_b不会直接位于df_a的下方
昨天我在熊猫身上发现了一只虫子。 我也找到了一个解决办法,但我希望团队能够解决这个问题 我有一个有两列的数据框,我需要在列“a”和列“B”之间进行划分。 如果列“B”中有一个“零”,则唯一的方法是创建一个用“B!”过滤的临时数据帧“0”,然后继续创建列“C”的除法 没有办法直接生成它 df是带有列“A”和“B”的数据帧 以下工作循环工程 df_temporary = df.loc[df['B'] != 0, ['A','B']] df_temporary['C'] = df['A']/df['B
假设我有一个熊猫系列,看起来像这样: 0 1 1 1 2 1 3 2 4 2 5 3 6 3 7 3 8 2 9 2 10 2 11 2 12 1 值为1表示此行是其自己的组。第一次看到值2时,表示此行和下一行在一个组中。第一次看到值3时,表示此行和以下两行在一个组中。等等等等 因此,对于上述示例,我希望将其分组如下: 0 1 ------ 1 1 ------ 2 1 ------ 3 2 4 2 ------ 5 3 6