草庐IT

pyspark-dataframes

全部标签

python - 如何对 pandas DataFrame 中的值进行二值化?

我有以下数据框:df=pd.DataFrame(['Male','Female','Female','Unknown','Male'],columns=['Gender'])我想将其转换为包含“男性”、“女性”和“未知”列的DataFrame,值0和1表示性别。GenderMaleFemaleMale10Female01....为此,我编写了一个函数并使用map调用该函数。defisValue(x,value):if(x==value):return1else:return0forvalueindf['Gender'].unique():df[str(value)]=df['Gende

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 - Pyspark RDD .filter() 带通配符

我有一个PysparkRDD,其中有一个我想用作过滤器的文本列,所以我有以下代码:table2=table1.filter(lambdax:x[12]=="*TEXT*")问题是...如您所见,我正在使用*试图告诉他将其解释为通配符,但没有成功。没有人有帮助吗? 最佳答案 lambda函数是纯python函数,所以像下面这样的东西就可以了table2=table1.filter(lambdax:"TEXT"inx[12]) 关于python-PysparkRDD.filter()带通配符

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 - 将 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 - pyspark 中减少数据帧的最有效方法是什么?

我有以下数据框,第一行看起来像这样:['station_id','country','temperature','time']['12','usa','22','12:04:14']我想按“法国”前100个站点的降序显示平均温度。在pyspark中最好(最有效)的方法是什么? 最佳答案 我们通过以下方式将您的查询转换为SparkSQL:frompyspark.sql.functionsimportmean,descdf.filter(df["country"]=="france")\#onlyfrenchstations.group

python - 向 DataFrame 添加多个列并将它们设置为等于现有列

我想将多个列添加到pandasDataFrame并将它们设置为等于现有列。有没有简单的方法可以做到这一点?在R中我会这样做:df在pandas中,这会导致KeyError:"['b''c']notinindex":df=pd.DataFrame({'a':np.arange(1,6)})df[['b','c']]=df.a 最佳答案 你可以使用.assign()方法:In[31]:df.assign(b=df['a'],c=df['a'])Out[31]:abc01111222233334444555或者更有创意的方法:In[41]

python - 检查列表中的单词并删除 pandas dataframe 列中的那些单词

我有一个列表如下,remove_words=['abc','deff','pls']以下是我拥有的列名称为“string”的数据框data['string']0abcstackoverflow1abc1232deffcomedy3definitely4plslkjh5pls1234我想检查pandasdataframe列中remove_words列表中的单词,并删除pandasdataframe中的这些单词。我想检查单独出现的单词而不与其他单词一起出现。例如,如果pandasdf列中有'abc',请将其替换为'',但如果它出现在abc123中,我们需要保持原样。这里的输出应该是,dat

python - 测试 pandas DataFrame 的任何列是否满足条件

我有一个包含很多列的DataFrame。现在,我有一个条件可以测试其中的某些列,如果该列集中的任何一个不为零。有没有更优雅的方法将该条件应用于列的子集?我当前的代码是:df['indicator']=((df['col_1']!=0)|(df['col_2']!=0)|(df['col_3']!=0)|(df['col_4']!=0)|(df['col_5']!=0))我一直在寻找类似这样的伪代码:columns=['col_1','col_1','col_2','col_3','col_4','col_5']df['indicator']=df.any(columns,lambdav

python - 如何有效地迭代 pandas DataFrame 并在这些值上递增 NumPy 数组?

我的pandas/numpy生疏了,感觉自己写的代码效率低下。我正在Python3.x中初始化一个numpy零数组,长度为1000。为了我的目的,这些只是整数:importnumpyasnparray_of_zeros=np.zeros((1000,),)我还有下面的DataFrame(比我的实际数据小很多)importpandasaspddict1={'start':[100,200,300],'end':[400,500,600]}df=pd.DataFrame(dict1)print(df)####startend##0100400##1200500##2300600DataFr