DataFrame

#DataFrame#

已有0人关注此标签

内容分类

一码平川MACHEL

我现在有两万条数据,要通过id查找对应数据,是遍历一遍放到dict里面查找快,还是放到pandas的DataFrame里面查找快?

我现在有两万条数据,要通过id查找对应数据,是遍历一遍放到dict里面查找快,还是放到pandas的DataFrame里面查找快?

社区小助手

Spark 【问答合集】

如何使用spark将kafka主题中的writeStream数据写入hdfs?https://yq.aliyun.com/ask/493211当Spark在S3上读取大数据集时,在“停机时间”期间发生了什么?https://yq.aliyun.com/ask/493212从Redshift读入Spark Dataframe(Spark-Redshift模块)https://yq.aliyun.com/ask/493215在初始化spark上下文后,在运行时更改pyspark的hadoop配置中的aws凭据https://yq.aliyun.com/ask/493217Window.rowsBetween - 仅考虑满足特定条件的行(例如,不为null)https://yq.aliyun.com/ask/493220spark的RDD内容直接用saveAsTextFile保存到hdfs时会出现中文乱码现象,但在控制台用foreach打印该RDD数据显示是正常的,该怎么解决呢?https://yq.aliyun.com/ask/494418请问一下如何能查看spark struct streaming内存使用情况呢?https://yq.aliyun.com/ask/494417使用spark 2.3 structed streaming 时 checkpoint 频繁在HDFS写小文件,块数到达百万级别 ,这个怎么优化下?https://yq.aliyun.com/ask/494415请教大家一个问题,spark stream连kafka,在web页面的stream标签,显示好多batch处于queued状态,这些batch是已经把数据从kafka读取进rdd,等待处理,还是还没有从kafka读取数进rdd?https://yq.aliyun.com/ask/493702为什么我使用 dropDuplicates()函数报错Caused by: java.lang.NoSuchMethodError: org.codehaus.commons.compiler.Location.(Ljava/lang/String;II)V ?https://yq.aliyun.com/ask/493700请教一下,我hive中数据大小为16g,通过importtsv生成了hfile 文件,导入到hbase中了,数据变成130多g,还有什么更好的办法吗?https://yq.aliyun.com/ask/493698jdbc 连接spark thrift server 如何获取日志?https://yq.aliyun.com/ask/493582Spark如何从一行中仅提取Json数据?https://yq.aliyun.com/ask/493581pyspark - 在json流数据中找到max和min usign createDataFramehttps://yq.aliyun.com/ask/493234如何计算和获取Spark Dataframe中唯一ID的值总和?https://yq.aliyun.com/ask/493231如何将csv目录加载到hdfs作为parquet?https://yq.aliyun.com/ask/493224无法使用Spark在Datastax上初始化图形https://yq.aliyun.com/ask/493222使用PySpark计算每个窗口的用户数https://yq.aliyun.com/ask/493221sql语句不支持delete操作,如果我想执行delete操作该怎么办?https://yq.aliyun.com/ask/494420spark streaming 和 kafka ,打成jar包后((相关第三方依赖也在里面)),放到集群上总是报StringDecoder 找不到classhttps://yq.aliyun.com/ask/494421json字符串中有重名但大小写不同的key,使用play.api.libs.json.Json.parse解析json没有报错,但是spark-sql使用org.openx.data.jsonserde.JsonSerDe时,会自动将key转为小写,然后putOnce函数报错Duplicate keyhttps://yq.aliyun.com/ask/494423spark DataFrame写入HDFS怎么压缩?https://yq.aliyun.com/ask/495552使用Spark On Hive时,动态的将数据插入到Hive中,但是在Hive的数据表下会有很多文件,这个可以怎么设置一下呢?https://yq.aliyun.com/ask/495927 技术交流群 Apache Spark中国技术交流群 (钉钉扫码加入)

游客886

大家好,请教一下,使用pyhton的psycopg2模块连接pg,然后使用pandas的to_sql函数将dataframe写入数据库时报错,关系 sqlite_master 不存在。 这是什么原因?

大家好,请教一下,使用pyhton的psycopg2模块连接pg,然后使用pandas的to_sql函数将dataframe写入数据库时报错,关系 sqlite_master 不存在。 这是什么原因?本问题来自云栖社区【PostgreSQL技术进阶社群】。https://yq.aliyun.com/articles/690084 点击链接欢迎加入社区大社群。

sangaj

pyodps 中怎么写表

比如我在服务器上,有个df,我获取了df后 df=DataFrame(o.get_table('df')),其中有a,b,c三列,然后我新增了一列 a1 并存入了新的表 df1中,怎么把df1 再写入云服务器中? write_table,该怎么用?

sangaj

pyodps 中如何实现diff函数

pyodps 中的dataframe ,分组后,如何对时间求组内的时间差,在pandas中可以直接使用diff函数,在pyodps中该如何实现?

社区小助手

为什么这个completed的stage还有running状态的task呢

大佬们问个问题哈,为啥这个completed的stage还有running状态的task呢?而且一个dataframe的count怎么有多个stage

社区小助手

spark DataFrame写入HDFS怎么压缩

spark DataFrame写入HDFS怎么压缩?写成txt文件的格式

一码平川MACHEL

如何迭代Pandas Dataframe中的行

我的数据看起来像这样: Currency Average Cost for two0 Botswana Pula(P) 11001 Botswana Pula(P) 12002 Botswana Pula(P) 40003 Botswana Pula(P) 15004 Botswana Pula(P) 1500我想创建一个新的列,将成本转换为美元。仅举几说,有12种货币。 这就是我写的: for i in range(len(df)) :if(dfi == 'Botswana Pula(P)'): df[i]['new cost'] = df[i]['Average Cost for two'] * 0.095 if (dfi == 'Brazilian Real(R$)']): df[i]['new cost'] = df[i]['Average Cost for two'] * 0.266 and so on...本问题及下方已被采纳的回答均来自云栖社区【Python技术进阶大群】。https://yq.aliyun.com/articles/690084 点击链接欢迎加入社区大社群。

一码平川MACHEL

检查pandas dataframe中是否存在值

我有一个pandas数据帧,它包含3000个纬度经度值。我想检查数据帧中是否存在lat-long。 数据框如下所示: lat long31.76 77.8431.77 77.8431.78 77.8432.76 77.85现在,我想检查上述数据帧中是否存在(31.76,77.84)。如果是,那么索引也是。

一码平川MACHEL

在pandas中合并两个数据帧

我有以下两个数据框: import pandas as pd data1 = {'date' : ['1', '2','3'], 'value1' : ['a', 'b' ,'c'], 'value2' : ['12','24','4']} data2 = {'date' : ['2','3','4'], 'value1' : ['b', 'c' ,'g'], 'value2' : ['24','4','55']} df1 = pd.DataFrame(data1)df1 = df1.set_index('date')df2 = pd.DataFrame(data2)df2 = df2.set_index('date')这是我想要的输出: desired_result = {'date' : ['1','2','3','4'], 'value1' : ['a', 'b', 'c', 'g'], 'value2' : ['12', '24', '4', '55']} 我已经尝试了所有不同类型的合并,加入,concat但无法弄清楚。

一码平川MACHEL

以编程方式在(I)python中制作和保存绘图而不首先在屏幕上渲染它们

这是一个虚拟脚本,可以生成三个图并将它们保存为PDF。 import matplotlib.pyplot as pltimport pandas as pdimport numpy as np df = pd.DataFrame({"A":np.random.normal(100), "B":np.random.chisquare(5, size = 100), "C":np.random.gamma(5,size = 100)}) for i in df.columns: plt.hist(df[i]) plt.savefig(i+".pdf", format = "pdf") plt.close() 我正在使用spyder,它使用IPython。当我运行这个脚本时,三个窗口弹出我然后消失。它有效,但有点烦人。 如何在不在屏幕上呈现的情况下将图形保存为pdf? 我正在寻找类似R的东西 pdf("path/to/plot/name.pdf")commandsdev.off()因为屏幕上没有任何内容呈现,但pdf会被保存。

一码平川MACHEL

如何循环时间戳并创建df

我正在尝试生成将被API接受的时间戳(看起来像字符串格式),然后遍历这些时间戳并创建DF。 这就是我现在所拥有的。 码: cg = CoinGeckoAPI()cs = 'bitcoin' start_dti = '2017, 1, 1'end_dti = '2019, 2, 1'index = pd.date_range(start_dti, end_dti) // missing a way to loop over this datadata = cg.get_coin_history_by_id(cs, index) df_pr = pd_json.json_normalize(data['developer_data']) df = pd.DataFrame(data=[{'date' : index, cs: data['developer_data']['pull_request_contributors']}]).set_index('date') 我希望得到一个这样的表格: bitcoin 2017-01-01 3802017-01-02 385...2019-02-01 1050

一码平川MACHEL

如何取出每列中包含最大值的矩阵?

我有一个包含3列的数据矩阵:x,y,z:每个都有很多行。 我需要找到每个coloumn每次包含最大值的行,并且最小值也是相同的行,然后将所有这些行写入数据帧。 x= [1,2,4,3] , y= [7,8,6,5] , z= [12,10,11,9]找到我做的相应行: alldata=[]; alldata.append([x]); alldata.append([y]); alldata.append([z]); for elem in alldata: xarr=np.array(elem) rowmax=xarr.argmax() ind= alldata.index(elem) maxcorr.append(alldata[ind][0][rowmax]) for elem in alldata: xarr=np.array(elem) rowmin=xarr.argmin() ind= alldata.index(elem) maxcorr.append(alldata[ind][0][rowmin]) 问题是当我需要编写相应的行时,类似于: XMAX,Y,Z,X,YMAX,Z2,X3,Y3,ZMAX,XMIN,Y4,Z4,..... 为了写我试过的相应行: x=np.transpose(x); y=np.transpose(y); z=np.transpose(z); mydata=[]mydata.append(x)mydata.append(y)mydata.append(z) mydata=np.array(mydata)在数据框上写: casename=['Xmax', 'Y', 'Z', ,'Xmin', 'Y', 'Z', 'X', 'Ymax', 'Z', 'X', 'Ymin', 'Z', 'X', 'Y', 'Zmax','X', 'Y', 'Zmin']mydata=np.array(mydata).reshape(-1, len(casename))df = pd.DataFrame(mydata, index=Filenames, columns=casename)显然mydata是我正在寻找的形式,这不是在代码中制定的,而是我的问题。无法从mydata中取出相应的行 例如,根据示例我想要的输出是: [4,5,11,1,7,12,2,8,10,3,5,9,1,7,12,3,5,9] 还有一件事:文件名不应该改变,因为我有几个带有这些X,Y,Z数据的文件

一码平川MACHEL

ambda函数检查值是否在列表中

这是一个示例Dataframe: id lists1 ['dog', 'apple']2 ['apple', 'cat']3 ['pig', 'love']4 ['help', 'out']现在,我想apple在列表列表中使用lambda函数创建另一列。 id lists flag1 ['dog', 'apple'] 12 ['apple', 'cat'] 13 ['pig', 'love'] 04 ['help', 'out'] 0我的第一个想法是使用以下代码,但我收到语法错误: df.apply(lambda x: [1 if "apple" in i for i in x])

一码平川MACHEL

dplyr R在pandas 中安排相同的功能

我有一个类似于此的数据框,我的想法是根据向量my_order排列行,如下所示。 R代码: df = data.frame(A = c("apple","cherry","orange","banana"), B = c(25,37,15,28))df A B 1 apple 252 cherry 373 orange 154 banana 28 my_order = c(2,3,4,1)dplyr::arrange(df,my_order) A B 1 banana 282 apple 253 cherry 374 orange 15我的问题是如何在python中执行此操作,pandas中是否有任何函数,相当于dplyr::arrange()? Python代码: import pandas as pd df = pd.DataFrame({'A': ["apple","cherry","orange","banana"], 'B': [25,37,15,28]})print(df) A B 0 apple 251 cherry 372 orange 153 banana 28 my_order = [1,2,3,0]df.iloc[my_order] A B 1 cherry 372 orange 153 banana 280 apple 25

一码平川MACHEL

我收到语法错误但代码看起来没问题

我试图使用python中的命令行添加一个带有单行代码的索引。代码似乎没问题,但它给出了语法错误 我正在使用python 3.7.1,我正在使用ipython 7.2.0的pandas并尝试学习DataFrame df2=pandas.DataFrame([("Name":"John"),("Name":"Jack")]) File "", line 1 df2=pandas.DataFrame([("Name":"John"),("Name":"Jack")]) ^ SyntaxError: invalid syntax列索引为“Name”且数据为“Jack”和“John”的表,其中行索引为“0”和“1” 这应该是预期的结果

一码平川MACHEL

在一个dask数据帧中,一行与其前导之间的差异为3行

我有一个CSV文件,它通过以下代码导入为dask数据帧: import dask.dataframe as dddf = dd.read_csv("name and path of the file.csv")df.head(10)产量 col1 col2 col3 +-----+------+-----+ | A | 2 | 4 |+-----+------+-----+ | A | 4 | 5 | +-----+------+-----+ | A | 7 | 7 | +-----+------+-----+ | A | 3 | 8 | +-----+------+-----+ | A | 7 | 3 | +-----+------+-----+ | B | 8 | 9 |+-----+------+-----+ | B | 10 | 10 | +-----+------+-----+ | B | 8 | 9 |+-----+------+-----+ 我想创建另一列col4,分别包含col2[n+3]/col2-1col1 中的每个组。 输出应该是 +-----+------+-----+-----+ |col1 | col2 | col3| col4| +-----+------+-----+-----+ | A | 2 | 4 | 0.5| #(3/2-1) +-----+------+-----+-----+ | A | 4 | 5 | 0.75| #(7/4-1) +-----+------+-----+-----+ | A | 7 | 7 | NA | +-----+------+-----+-----+ | A | 3 | 8 | NA | +-----+------+-----+-----+ | A | 7 | 3 | NA | +-----+------+-----+-----+ | B | 8 | 9 | 1.5 | +-----+------+-----+-----+ | B | 10 | 10 | NA | +-----+------+-----+-----+ | B | 8 | 9 | NA | +-----+------+-----+-----+ | B | 20 | 15 | NA | +-----+------+-----+-----+我们可以在熊猫上完成这项任务,如下所示 df['col4'] = df.groupby('col1')['col2'].transform(lambda x: x.shift(-3)) / df['col2'] - 1但它在dask中不起作用。

一码平川MACHEL

Pandas将groupby堆叠到DataFrame MultiIndex而不进行聚合

可以将groupby对象转换为DataFrame 而不进行聚合,其中组名称变为MultiIndex的0级?这个过程可以迭代吗? from pandas import DataFrame as DF df = DF.from_dict({'a':1, 'b':2, 'c':3, 'd':4, 'e':5}, orient='index')想要分组的输出: df.groupby(lambda x: df0%2)转换为这种形式: DF.from_dict({0:{'b':2,'d':4},1:{'a':1,'c':3,'e':5}},orient='index').stack().to_frame() (除了这一点,为什么值转换为浮点数?)

一码平川MACHEL

pd.DataFrame.from_dict()没有给出预期的结果

我想得到这个维基百科数据集(people_wiki.csv)中每个单词的单词计数。我能够得到每个单词并将其作为字典出现,但我无法将字典键值对拆分为单独的列。我已经尝试了几种方法(from_dict,from_records,to_frame,pivot_table等)这在python中是可行的。 Samle数据集: URI name text http://dbpedia.org/resource/George_Clooney George Clooney 'george timothy clooney born may 6 1961 is an american actor writer producer director and activist he has received three golden globe awards for his work as an actor and two academy awards one for acting and the other for producingclooney made his...'我试过了: clooney_word_count_table = pd.DataFrame.from_dict(clooney['word_count'], orient='index', columns=['word','count']我也尝试过: clooney['word_count'].to_frame()这是我的代码: people = pd.read_csv("people_wiki.csv")clooney = people[people['name'] == 'George Clooney'] from collections import Counterclooney['word_count']= clooney['text'].apply(lambda x: Counter(x.split(' '))) clooney_word_count_table = pd.DataFrame.from_dict(clooney['word_count'], orient='index', columns=['word','count']clooney _word_count_table输出: word_count 35817 {'george': 1, 'timothy': 1, 'clooney': 9, 'ii': ...我希望从clooney_word_count_table获得一个包含2列的输出数据帧: word countnormalize 1george 3combat 1producer 2

一码平川MACHEL

Pandas DataFrame基于多个列的值选择行,这些列的名称在列表中指定

我有以下数据帧: import pandas as pdimport numpy as npds = pd.DataFrame({'z':np.random.binomial(n=1,p=0.5,size=10), 'x':np.random.binomial(n=1,p=0.5,size=10), 'u':np.random.binomial(n=1,p=0.5,size=10), 'y':np.random.binomial(n=1,p=0.5,size=10)}) ds z x u y 0 0 1 0 01 0 1 1 12 1 1 1 13 0 0 1 14 0 0 1 15 0 0 0 06 1 0 1 17 0 1 1 18 1 1 0 09 0 1 1 1如何为列表中指定的变量名选择具有值(0,1)的行? 这是我到目前为止: zs = ['z','x']tf = ds[ds[zs].values == (0,1)]tf现在打印: z x u y 0 0 1 0 00 0 1 0 01 0 1 1 11 0 1 1 12 1 1 1 13 0 0 1 14 0 0 1 15 0 0 0 07 0 1 1 17 0 1 1 18 1 1 0 09 0 1 1 19 0 1 1 1其中显示重复项并且行不正确(行#2 - 1,1,1,1)。