我必须编写一个函数来替换熊猫系列的所有值,这些值都小于该系列的平均值。数列和数a应该是函数的参数。例如,如果序列为10,11,12,3,4,5, 7,9,15,20,a=7,则结果序列应为10.0,11.0,12.0,9.6,9.6,9.6,9.0,9.0,15.0,20.0。
我想知道如何使用series.replace函数将低于平均值的值替换为平均值,我迄今编写的代码如下:
import pandas as pd
def ex1(L,a):
#Creating the Series
sr = pd.Series(L)
result = sr.mean()
#re
为什么我们用“loc”来处理熊猫的数据?下面的代码无论是否使用loc,都以模拟的速度编译和运行
%timeit df_user1 = df.loc[df.user_id=='5561']
100 loops, best of 3: 11.9 ms per loop
或
%timeit df_user1_noloc = df[df.user_id=='5561']
100 loops, best of 3: 12 ms per loop
那么为什么要使用loc呢?
编辑:这已经被标记为一个重复的问题。不过,尽管确实提到了*
只需使用数据帧的getitem即可
我定义了熊猫DataFrame,给出了行数(索引)和列数。我执行一系列操作并将数据存储在这样的DataFrame中。执行此操作的代码是下一个:
import math
import numpy as np
import pandas as pd
sens_fac = [0.8, 1, 1.2]
A = 13;
B = 5;
C = 7/2;
D = 3*1.2;
par = [A,B,C,D]
data = pd.DataFrame(index=range(len(sens_fac)),columns=range(len(par)))
for i in range(len(par)):
据我所知,我可以用at来确定特定单元格的值:
index = "a"
df.at[index,"some_list"] = []
请注意,不能使用loc,因为
df.loc[index,"some_list"] = []
导致错误
ValueError: Must have equal len keys and value when setting with an iterable
问题是,有时索引并不是唯一的,但我知道确切的iloc设置值。所以我需要做的是
df.iloc[some_number_1,some_number_2] = []
但这
当读取一个表同时指定重复的列名(比如两个不同的名称)时,熊猫0.16.1会一次又一次地复制数据的最后两列。
In [1]:
df = pd.read_table('Datasets/tbl.csv', header=0, names=['one','two','one','two','one'])
df
tbl.csv包含一个具有5个不同列的表。最后两个部分将被重复,而不是给出所有列。
Out[1]:
one two one two one
0 0.132846 0.120522
如何搜索某个值是否存在于特定行中?
示例我有这个文件,它包含以下内容:
ID Name
1 Mark
2 John
3 Mary
用户将输入1,并且它将
print("the value already exist.")
但是如果用户输入4,它将添加一个新行,其中包含4和
name = input('Name')
然后像这样更新文件
ID Name
1 Mark
2 John
3 Mary
4 (userinput)
我得到了一个索引错误,我不知道如何修复它:IndexingError: Unalignable boolean Series provided as indexer (index of the boolean Series and of the indexed object do not match).,我不明白它为什么要抛出这个错误,因为display()调用中显示的索引是一致的。
我尝试了答案中的双括号,但没有起作用。
下面的可重复示例基于一个严重简化的真实代码版本。在最后一行中抛出错误。
使用Python 3.7。
import pandas as pd
def myfcn(row,
只有当状态“完成”时,我才想删除重复的行。对于其他的状态,如已分配/正在进行/挂起的状态,必须保留重复行。
Incident Status Priority ASGRP Submit Date Completed Date
Index
1 INC001 Assigned Low L1 2020-06-01 NaT
2 INC001 In p
我有下面的示例Python3.4脚本。它做了以下工作:
创建一个数据文件
将日期变量转换为datetime64格式,
基于两个分类变量创建groupby对象,
生成包含每个组中的数字项的计数的dataframe,
将计数dataframe与原始dataframe合并,以创建一个列,其中包含每个组中的行数。
创建一个列,该列包含顺序行之间的日期差异。
下面是脚本:
import numpy as np
import pandas as pd
# Create dataframe consisting of id, date and two categories
我使用了以下代码将大量的空列从txt文件插入到csv文件中,但我无法为任何行或列分配值。
data = pd.read_csv('DefaultPermList.txt',sep='\n',header=None)
data = data.set_index(0).T
data.to_csv('./data.csv', index = False)
df = pd.read_csv("data.csv")
我只想分配由csv文件中0值的300+列组成的整个行。我还想问一问,如何为一个特定的行或列分配一个值,如何比较一个值,比如一
我有用电量的数据。在权力愤怒的时候,数据是'0‘。我想用上周同一时间的数据代替0。它是数据集中前面或后面的168个索引。
在下面的代码中,我保存了所有零的索引。运行一个循环,该循环将位于当前索引的dataset中位于168个索引前面的值。
Index_Zero = data[data["Total"]==0].index.to_list() #Output = list of indexes where all the zeros lie
print(Index_Zero[0]) #Output = 2
for i in Index_Zero:
data.l
我有一个数据框架,我想对column1的信息进行迭代,将其分为三类(国家实验室、私人实验室、机构实验室),它们将被添加到另一个column.Column1上(例如):
实验室
-PRIV LAB1
-ARKANSAS
-CDC实验室
-PRINCETON
-LAB
-PRIV实验室2
-FLORIDA
等等..。
我的代码(至少相关部分)如下:
laborat=cov["LABORA"] #cov is my df, and LABORA the column im interested in
cond1=laborat.str.contains("PRIV
我有一只熊猫的数据
df = pd.DataFrame({'AKey':[1, 9999, 1, 1, 9999, 2, 2, 2],\
'AnotherKey':[1, 1, 1, 1, 2, 2, 2, 2]})
我希望将一个新值赋给特定的列,并为该列中具有特定值的每个元素分配一个新值。
假设我希望将新的值8888分配给具有值9999的元素。我尝试了以下几点:
df[df["AKey"]==9999]["AKey"]=8888
但是它返回以下错误:
A value is trying to be set on a co
对于这个查询,我找不到类似的问题。然而,我有一个熊猫数据格式,我想使用其中的两个列作为条件,如果是真的,就替换其中一个列中的值。
例如。我的一个列是'itemname‘,另一个是'value’。“项目名称”可能会重复多次。我想检查每个“itemname”,如果所有具有相同名称的其他项的值为0,则将这些“值”替换为100。
我知道这应该很简单,但是我不能把我的头绕着它走。
只是为了让它更清楚,这里
itemname value
0 a 0
1 b 100
2 c 0
3 a 0
3
我有以下数据:
df
Name Jan Feb Mar
Description
New A 34 32 54
Old B 65 98 05
Retired C 96 26 43
Description是索引列。
我试图将一个值赋值给变量如下:
variable = df[(df['Description']=='Retired') & (df['Name']==
关于熊猫,我有一个简单的索引问题。我想让一个简单的for循环来遍历数字1到5。我在熊猫索引方面遇到了麻烦(虽然我确信它很简单!)
我的粗略代码:
def averaged_rel_track(current_tracks, rel_values):
current_tracks['rel_values']=rel_values
current_tracks=current_tracks.set_index('candidate')
#I would like this line to loop over numbers 1 to 5
我试着查阅了大熊猫的文件,但仍然想不出该怎么做。
我有这些数据
In [6]:
df
Out[6]:
strike putCall
0 50 C
1 55 P
2 60 C
3 65 C
4 70 C
5 75 P
6 80 P
7 85 C
8 90 P
9 95 C
10 100 C
11 105 P
1
我已经创建了一个数据集,希望在其中找到最大销售额和人员姓名 data={'Company':['GOG','GOG','FB','FB','LT','LT'],'Name':['A','B','C','D','E','F'],'Sales':[200,120,340,124,243,350]}
data_s=pd.DataFrame(data)
pri
我创建了一个df,然后根据列中的值在该df中重复行。例如:
df = pd.DataFrame({
'a': [1,2,3],
'b': ['x','y','z']
})
然后,我根据这样的col值重复了这些行:
df = df.loc[df.index.repeat(df['a'])]
我得到了:
df
Out[150]:
a b
0 1 x
1 2 y
1 2 y
2 3 z
2 3 z
2 3 z
现在,我