我正在使用Pandas,我有一个数据框,我们可以在其中填充三个值之一:
ID_1 ID_2 ID_3
abc NaN NaN
NaN def NaN
NaN NaN ghi
NaN NaN jkl
NaN mno NaN
pqr NaN NaN
我的目标是将这三列合并到我的数据框中的一个新列中:
ID_1 ID_2 ID_3 Combined_ID
abc NaN NaN abc
NaN def NaN def
NaN N
这是我的密码:
for col in df:
if col.startswith('event'):
df[col].fillna(0, inplace=True)
df[col] = df[col].map(lambda x: re.sub("\D","",str(x)))
我有0到10个事件列"event_0,event_1,.“当我用此代码填充nan时,它会将所有事件列下的所有nan单元格填充为0,但它不会更改event_0,这是所选内容的第一列,也由nan填充。
我使用以下代码从'e
我有这样的数据:
A B
a
a
a b
a
a
a B
我想用"B“中的现有值填充列"B”中的空单元格。因此,最终结果将是:
A B
a b
a b
a b
a B
a B
a B
我已经尝试过将"B“列放在熊猫系列中,并移除空的细胞。
tmp=df['B']
tmp.dropna(axis=0, inplace=True, how=None)
然后,我想重复三次tmp系列中的每一项,并将其放回原始数据帧。但失败了。
我的解决办法可能不是一个好办法。任何建议都能帮上忙!
提前谢谢。
我正在使用循环在dataset上做一些计算。然后,基于随机事件,我将计算一些浮点数(这意味着我不知道我要检索多少浮点数)。我希望将这些数字(结果)保存在某种列表中,然后将它们保存到dataframe列中(我希望循环中的每个迭代都有这些结果,并将它们保存在列中,以便比较它们,这意味着,每一次迭代都会生成一个结果“列表”,这些结果将在df列中注册)。
示例:
for y in range(1,10):
for x in range(1,100):
if(x>random number and x<y):
result=2*x
我想通过组合x,y将所有的结果保存在一个data
我有一个数据,其中每列都是不同长度的时间序列。因此,在时间序列中的值之间以及在每个时间序列的末尾都缺少值,只有一列。我希望填充值之间缺失的值,但不填充“拖尾”值。
使用df = df.fillna(method='ffill')的方式让我获得了大部分的机会,但我不想使用这些跟踪NaNs,因为数据在哪里结束对我的分析来说是很重要的。
编辑:
我想谈一谈这一点:
ERICB SS Equity DCI US Equity FLEX US Equity
date
2008-02-14 8.026 NaN
我在Pandas DataFrame上看到了这个:
site channel week value
0 Canada A W01 NaN
1 Canada A W02 NaN
2 Canada A W03 12
3 Canada B W01 NaN
4 Canada B W02 NaN
5 Canada B W03 66
我要去拿这个
site
我正在从数据列不完整的Excel电子表格导入数据帧:
Date Value
0 2020-04-29 144
1 NaT 158
2 NaT 134
3 2020-04-30 114
4 NaT 153
我想用上一行中的日期替换NaTs来填充它们。慢速方法起作用:
for i in range(0, df.shape[0]):
if pd.isnull(df.iat[i,0]):
df.iat[i, 0] = df.iat
我有这个数据:
a b c d
1 NaN 1 2
NaN 1 3 4
3 NaN NaN 5
我需要根据column d的值替换每行中的空值。
产出应是:
a b c d
1 2 1 2
4 1 3 4
3 5 5 5
我试过这样的方法,但都没有用:
df.fillna(df.d, inplace= True)
df.iloc[:].fillna(df.d, inplace= True)
df.replace(np.NaN, df.d, inplace=True)
我有太多的列,所
我试图通过来自该列的随机抽样(例如,样本非NaN值)来填充数据中列中的每个列和每个单元格的NaN/null值。我现在正在做以下工作
for col in df:
count = 0
while True:
sample = df[col].sample(n=1)
count += 1
if pd.notna(sample.item()):
df[col].replace(sample, np.nan, inplace=True)
我发现了一个类似的问题,但它并没有帮助我,因为我的情况是不同的。
我有一个巨大的数据文件,它看起来或多或少类似下面的示例:
x y st mt ast sr c7 z w
0 mt 2 1 4 2 2 a yes
1 b 3 3 3 3 3 yes
2 1 1 2 4 3 yes
3 d 3 3 1 2 4 d
4 e 2 3
对于每一行,我想随机抽样k个对应于非空值的列索引。 如果我从这个数据帧开始, A = pd.DataFrame([
[1, np.nan, 3, 5],
[np.nan, 2, np.nan, 7],
[4, 8, 9]
])
>>> A
0 1 2 3
0 1.0 NaN 3.0 5.0
1 NaN 2.0 NaN 7.0
2 4.0 8.0 9.0 NaN 如果我想为每一行随机采样2个非空值,并将它们更改为值-1,一种方法如下: B = A.copy()
for i in A.index:
s = A.l
在使用来自category和的解决方案在我的所有列中填充了空值之后,在我的许多float列中留下了许多空值。我认为一个简单的df.fillna(0.0, inplace = True)可以工作,但是,我得到了错误ValueError: fill value must be in categories。我认为此错误仅适用于category类型列。
所以,
我有许多浮动列和许多类别列。我通过添加类别“未知”来填充类别列,然后用“未知”填充空列。现在,简单的
df.fillna(0.0, inplace = True)
应该有效的。但是,事实并非如此。
重现此问题的简单方法如下:
我有以下csv文件(片段) GENDER FULL_NAME FIRST MIDDLE LAST
M Sam Co Sam Co
F Jen Hill
M Frank Hill Billy Frank Hill Billy
M Phil Tori Vega Phil Tori Vega
M Bob Smith-Oreiley Bob
我正在尝试使用具有相似列值的行来估算/填充值。
例如,我有这样的数据帧:
one | two | three
1 1 10
1 1 nan
1 1 nan
1 2 nan
1 2 20
1 2 nan
1 3 nan
1 3 nan
我想使用列one和two的键,这是相似的,如果列three不是完全nan,那么用列'3‘中的值来计算一行类似键的现有值。
这是我想要的结果:
one | two | three
1 1 10
1
我想使用熊猫转发填充空值,只在两个非空数据点之间,而没有其他数据点。
例如,我有一个名为注释的列。
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
我的表格:
In [15]: csv=u"""a,a,,a
....: b,b,,b
....: c,c,,c
....: """
In [18]: df = pd.read_csv(io.StringIO(csv), header=None)
将空列填充为“未知”
In [19]: df
Out[19]:
0 1 2 3
0 a a NaN a
1 b b NaN b
2 c c NaN c
In [20]: df.fillna({2:'UNKNOWN'})
得到了错误
V
我想测试C列中的单元格是否为空白,如果是,则在A列中填充值,如果A为NaN,则用B填充。列C可能有一些空白单元格如下所示:
df
A B C
0 xyz NaN 12.03.2010
1 abc NaN 01.10.2009
2 NaN 14.11.2010
3 02.10.2010 NaN
C似乎有一些空白单元格,但当我用df.iloc[2, 2] == None或pd.isnull
我有一个数据框架,它有86列。有些列有前缀,如name_smt1, name_smt2, ..., status_smt1, status_smt2,..., grade_smt1, grade_smt2,...等。其他列是主题,有40多个不同名称的主题列。我还有一个名为grade_t的列,我使用它作为参数,无论我是否要填充所有用D或no包含的subjects列。如果行中的列grade_t为空,那么所有subjects列(即null)都将使用D填充。我试图这样做,但是它会引发错误,说ValueError: shape mismatch: value array of shape (7,4) c
假设我有一个很大的DataFrame,但是我想把精力集中在其中的一个选定部分上,就像4列中的3列一样。如果这些选定的3列的值中至少有2列为空,我希望删除整个行。
例如,这是我所拥有的数据,我选择的列是['B','C','D']
A B C D
1 1
2 2
3 3 3 3
4
如果所选列(第二行和第四行)中至少有两个值为空,如何消除这些行。
最后的数据是:
A B C D
1 1
3 3 3 3