假设我有一个包含品牌名称的品牌列表:
BRANDS = ['Samsung', 'Apple', 'Nike', .....]
Dataframe A具有以下结构
row item_title brand_name
1 | Apple 6S | Apple
2 | Nike BB Shoes | na <-- need to fill with Nike
3 | Samsung TV | na <--need fill with Samsung
4 | Use
我试图用一个静态日期填充一个DataFrame列(整个列),但它必须是一个变量。我可以使用numpy填写数字,但无法填写列的日期:
currdate = ['3/31/2018'] #this is what I need filled in
missing = ['GREEN', 'YELLOW', 'RED', 'BLUE', 'PINK']
第1节:
A = ({'PERIOD DT': pd.to_datetime(currdate),
假设我们有一个df:
A B
apple 1.0
apple 2.0
apple NA
orange NA
orange 7.0
melon 14.0
melon NA
melon 15.0
melon 16.0
要替换NA,我们可以使用df["B"].fillna(df["B"].median()),但它将用"B“中所有数据的中位数填充NA。
我们是否可以用某个A的中位数来代替NA (如下所示):
A B
apple
我有两列,a和b(列的长度约为85,000)。B是空的,a是用各种值填充的。如果值在列表c中,则需要用"Yes“填充b。如果值在列表d中,则需要用"No“填充b。如果它们都不在列表中,那么b可以留空或用NA填充(实际上无关紧要)。现在,我有一个带有if、if else和else语句的for循环。虽然这是有效的,但它并不快(大约需要20秒)。有没有什么方法可以用向量运算来加速呢?提前感谢!
for (i in 1:length(a)){
if(is.element(df$a[i],c) == TRUE){
df$b[i] <- "Yes"
表通常有m行和n列。但是我们能在python中创建混乱的表吗?
比如:
1 2 3
4 5
6 7 8 9
R编程语言具有自动填充空白或未初始化单元格的“NA”功能。例如,如果我们在R中制作上表,它将类似于:
1 2 3 NA
4 5 NA NA
6 7 8 9
R将根据最大列表自动创建m行。最大列意味着,如果我们再添加一个列比现有表多的行,则R将自动创建新列,并用'NA‘初始化前几行的新列。例如,如果我们添加[A, B, C, D, E, F]作为我的新行。那么R的结果将是:
1 2 3 NA NA NA
4 5 NA NA NA NA
6 7
晚上好
在下面的dataframe中,列'c'有一些NaNs
用一个值填充第一个N个nans,用另一个值填充剩余的nans,这是一种很好的仿生方法。
(示例:用值10填充前3 nans,用值20填充其余的2nans)
谢谢
a b c
a 5 5 NaN
b 5 8 8
c 0 1 NaN
d 8 5 6
e 1 6 NaN
f 2 5 8
g 6 5 5
h 0 1 3
i 7 3 NaN
j 2 6 NaN
编辑I-这是一种(非pythonic)方式:
nan_number = df['c
我想用0.0替换输出中的'na‘值。这些不是NaN值。它在csv文件中有'na‘值。我尝试了我认为可以用0.0代替na的每一种方法,但都没有效果。这是输出:
Brunei Darussalam Indonesia Malaysia Philippines Thailand Viet Nam Myanmar Japan ... Austria Scandinavia CIS & Eastern Europe USA Canada Australia New Zealand Afric
我想根据序列中的最后一个有效索引有条件地向前填充熊猫序列。例如,假设我们有这个系列: import pandas as pd
ser = pd.Series(['a', 'b', 'b', pd.NA, 'c', pd.NA, pd.NA, 'd', pd.NA])
ser
0 a
1 b
2 b
3 <NA>
4 c
5 <NA>
6 <NA>
7 d
8 <NA> 仅当最后一个有
我有客户交易数据,有些发票号码丢失了。如果客户id在行中相等且事务金额相等,我希望用前面的行值来填充缺少的发票号。日期并不重要。
数据的一个示例是:
date customer amount invoice
01/13 A 10 1
02/13 B 20 2
03/13 B 20 NA
04/13 C 30 3
05/13 C 60 NA
06/13 D 50 4
我想要创造的是:
date custome
我在用另一个表/列表中的值替换第一列中的值时遇到了问题。我有以下示例数据集'df':
type col2 col3
A NA blue
A America blue
A Nam blue
B NA red
B '' red
B 'Nam' red
我有一个简化的表格,列“type”中每个值的温度:
type temp
A hot
B cold
因此,我试图用列表中的对应数据替换和/或填充(如果
我遇到了一些在R中必须非常简单的事情;我想用相应的值填充(data.frame的)列中缺少的值。所以就像这样:
V1 V2
cat tree
cat NA
NA tree
dog house
NA house
dog NA
horse NA
NA car
horse car
因此,对应的cat字符串是tree,因此当"cat group“中有NA时,必须填写"tree”。当"dog group“中有NA时,必须填写"house”(所以我必须选择列表中
我有一个熊猫数据框架,其中一个列sign up有多个空值。sign up列有包含多个OS (如iOS、android、web等)的分类值。我想从现有的OS值中填充NA值,但是NA值应该按照OS值的现有分布来填充。
示例:假设数据集具有OS值计数分布,如下所示:
signup
android web 14
ios web 16
mac 5
other 3
windows 6
Name: id, dtype: int64
我想根据以上不同OS值的分布来填充NA值。我想做的原因是维护当前的发行版,因为填充Mode值可能会扭曲结
我有一个想要插入到mysql数据库中的数据。在插入之前,我需要在包含非唯一键的列中填充NA值。填入的值需要跨组共享,但不能与sql表中任何先前存在的值重叠。
假设表中的最大键值为5。
id group key
1 A 1
2 A 1
3 B NA
4 B NA
5 C 2
6 D NA
成为:
id group key
1 A 1
2 A 1
3 B 6
我的问题集中在熊猫的方式上。在这种情况下,熊猫的行为是固定的吗?
我有一个清单/一系列数字,并想对它们进行总结。我可以用sum()或者简单的+操作符来完成这个任务。关键是,有时在这样的列表中有一个<NA>。当结果总是<NA>时,这对我来说是可以的。
当然,我可以使用if val is pandas.NA显式地检查每个元素。但我希望有一个更好的,但也节省的方式。
这是一个产生两种不同结果的MWE。使用+会像预期的那样产生一个<NA>。但是.sum()只是忽略了列表中的<NA>,并给出了具体的数字作为结果。
#!/usr/bin/env python
通过这样做,我创建了一个位置列表:
list_NA = []
for x in df['place']:
if x and x not in list_NA:
list_NA.append(x)
这给了我一个这样的清单:
print(list_NA)
['DEN', 'BOS', 'DAB', 'MIB', 'SAA', 'LAB', 'NYB', 'AGA', 'QRO', 'DCC',
假设我有以下数据:
dat <- read.table(text="id_1 id_2
123 NA
456 NA
NA 3
NA 1
NA 1", header=T)
> dat
id_1 id_2
1 123 NA
2 456 NA
3 NA 3
4 NA 1
5 NA 1
我希望能够“合并”这些列,以生成一个结果id列,其中一个列的
我想使用熊猫转发填充空值,只在两个非空数据点之间,而没有其他数据点。
例如,我有一个名为注释的列。
Comments:
Hello World
NA
Hello World
NA
Hello World
NA
NA
NA
NA
输出应该如下所示:
Hello World
Hello World
Hello World
Hello World
Hello World
NA
NA
NA
NA
我需要一个基本的R解决方案来将不同名称的嵌套列表转换为data.frame
mylist <- list(list(a=1,b=2), list(a=3), list(b=5), list(a=9, z=list('k'))
convert(mylist)
## returns a data.frame:
##
## a b z
## 1 2 <NULL>
## 3 NA <NULL>
## NA 5 <NULL>
如果我有一个df:
letter body_part
a head
b head
c NA
d NA
e left_foot
我想把它分成2个dfs..。一个只有body_part -“头”,另一个与其他一切。也就是说。
列表<- split(df,df$body_part == 'head')
我能做到这一点而不删除NA行吗?(我知道如果我用字符串填充NAs,我可以做到这一点,但是有什么方法可以避免这一步呢?)
我希望在不更改对象类的情况下,使用NA值填充列表中的前n个对象或数据框中的前n列。问题如下:
d <- data.frame(matrix(1:10, nrow=2, ncol=5))
d_NA <- d
d_NA[,1] <- NA
class(d[,1]) == class(d_NA[,1])
l <- list(1)
l_NA <- l
l_NA[[1]] <- NA
class(l[[1]]) == class(l_NA[[1]]) # outputs to false
这是因为我填充到数据框或列表中的NA属于“逻辑”类。
现在我当然可以这样