Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何用Pandas中的最后一个可用值替换丢失的数据_Python_Pandas_Dataframe - Fatal编程技术网

Python 如何用Pandas中的最后一个可用值替换丢失的数据

Python 如何用Pandas中的最后一个可用值替换丢失的数据,python,pandas,dataframe,Python,Pandas,Dataframe,在熊猫中,我是否可以根据每个ID的最后可用值进行插补 身份证件 周 类别 1001 1. A. 1001 2. A. 1001 3. 1001 4. B 1002 1. B 1002 2. 1002 3. C 1002 4. 您并没有真正描述您想要什么,但它看起来像是您正在寻找的(或fillna(method='ffill'))。这将用以前的元素替换缺少的值(na)(因此f或wardfill) >>df 周类别 身份证件 10011 A 10012 A 10013无 10014 B 10021B

在熊猫中,我是否可以根据每个ID的最后可用值进行插补

身份证件 周 类别 1001 1. A. 1001 2. A. 1001 3. 1001 4. B 1002 1. B 1002 2. 1002 3. C 1002 4.
您并没有真正描述您想要什么,但它看起来像是您正在寻找的(或
fillna(method='ffill')
)。这将用以前的元素替换缺少的值(
na
)(因此
f
或ward
fill

>>df
周类别
身份证件
10011 A
10012 A
10013无
10014 B
10021B
1002 2无
1002 3 C
1002 4无
>>>df['Category']=df['Category'].ffill()
>>>df
周类别
身份证件
10011 A
10012 A
10013 A
10014 B
10021B
1002 2 B
1002 3 C
1002 4 C
如果缺少的值是其他值,例如空字符串,则可以删除这些值,然后使用相同的解决方案

>>> df['Category'].mask(df['Category'] == '').ffill()
ID
1001    A
1001    A
1001    A
1001    B
1002    B
1002    B
1002    C
1002    C
Name: Category, dtype: object
如果你想限制每个ID,你可以使用

如果ID开头的值为空,则这只会给出与上一个解决方案不同的结果。如果不希望从上一个ID填充,请参阅以下内容:

>>> df
      Week Category
ID                 
1001     1        A
1001     2        A
1001     3     None
1001     4        B
1002     1     None
1002     2     None
1002     3        C
1002     4     None
>>> df.groupby('ID')['Category'].ffill()
ID
1001      A
1001      A
1001      A
1001      B
1002    NaN
1002    NaN
1002      C
1002      C
Name: Category, dtype: object
>>> df['Category'].ffill()
ID
1001    A
1001    A
1001    A
1001    B
1002    B
1002    B
1002    C
1002    C
Name: Category, dtype: object

您并没有真正描述您想要什么,但它看起来像是您正在寻找的(或
fillna(method='ffill')
)。这将用以前的元素替换缺少的值(
na
)(因此
f
或ward
fill

>>df
周类别
身份证件
10011 A
10012 A
10013无
10014 B
10021B
1002 2无
1002 3 C
1002 4无
>>>df['Category']=df['Category'].ffill()
>>>df
周类别
身份证件
10011 A
10012 A
10013 A
10014 B
10021B
1002 2 B
1002 3 C
1002 4 C
如果缺少的值是其他值,例如空字符串,则可以删除这些值,然后使用相同的解决方案

>>> df['Category'].mask(df['Category'] == '').ffill()
ID
1001    A
1001    A
1001    A
1001    B
1002    B
1002    B
1002    C
1002    C
Name: Category, dtype: object
如果你想限制每个ID,你可以使用

如果ID开头的值为空,则这只会给出与上一个解决方案不同的结果。如果不希望从上一个ID填充,请参阅以下内容:

>>> df
      Week Category
ID                 
1001     1        A
1001     2        A
1001     3     None
1001     4        B
1002     1     None
1002     2     None
1002     3        C
1002     4     None
>>> df.groupby('ID')['Category'].ffill()
ID
1001      A
1001      A
1001      A
1001      B
1002    NaN
1002    NaN
1002      C
1002      C
Name: Category, dtype: object
>>> df['Category'].ffill()
ID
1001    A
1001    A
1001    A
1001    B
1002    B
1002    B
1002    C
1002    C
Name: Category, dtype: object

如果缺少特定ID类别(如1002)的第一个值,它将用以前ID的最后一个可用类别填充,我希望它在每个唯一ID内填充,而不是从以前ID中获取值,我如何才能做到这一点?谢谢,如果缺少特定ID类别(如1002)的第一个值,这将非常有用,它将填充上一个ID的最后一个可用类别,我希望它填充在每个唯一的ID中,而不是从上一个ID中获取值,我如何才能做到这一点?谢谢,这真的很有帮助