Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.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数据帧填充,例如bfill、ffill_Python_Pandas_Dataframe - Fatal编程技术网

python数据帧填充,例如bfill、ffill

python数据帧填充,例如bfill、ffill,python,pandas,dataframe,Python,Pandas,Dataframe,填写一个非常大的数据帧有两个问题。这幅画有一部分。我想把E和F的1000降到26,再也不要了。以同样的方式,我希望2000年被拉到-1和下一个26。我原以为我可以用bfill和ffill做到这一点,但不幸的是,我不知道如何……(图1) 另一个问题是,在-1到26之间的值不包含E和F中的任何值的列中出现。我如何删除它们或用0填充它们,以便没有bfill或ffill在其中生成错误的条目? (图2) 为了更好地理解它,我将示例缩短了一点。图3显示填充时的外观,图4显示填充正确 可以找到您有-1的

填写一个非常大的数据帧有两个问题。这幅画有一部分。我想把E和F的1000降到26,再也不要了。以同样的方式,我希望2000年被拉到-1和下一个26。我原以为我可以用bfill和ffill做到这一点,但不幸的是,我不知道如何……(图1)

另一个问题是,在-1到26之间的值不包含E和F中的任何值的列中出现。我如何删除它们或用0填充它们,以便没有bfill或ffill在其中生成错误的条目? (图2)

为了更好地理解它,我将示例缩短了一点。图3显示填充时的外观,图4显示填充正确


可以找到您有-1的索引,然后对要填充的列进行切片/循环

仅创建示例数据:

import pandas as pd
df = pd.DataFrame(columns=list('ABE'))
df['A']=list(range(-1, 26)) * 10
在每个部分添加随机值

import random 

for i in df.index:
    if i%27 == 0:
        df.loc[i,'B'] = random.random()
    else:
        df.loc[i, 'B'] = 0
找到要切片的索引

indx = df[df['A'] == -1].index.values
填写“E”列中的数据


可以找到具有-1的索引,然后对要填充的列进行切片/循环

仅创建示例数据:

import pandas as pd
df = pd.DataFrame(columns=list('ABE'))
df['A']=list(range(-1, 26)) * 10
在每个部分添加随机值

import random 

for i in df.index:
    if i%27 == 0:
        df.loc[i,'B'] = random.random()
    else:
        df.loc[i, 'B'] = 0
找到要切片的索引

indx = df[df['A'] == -1].index.values
填写“E”列中的数据


假设您必须查找并填充特定线段的值

data = pd.read_csv('/Users/Hanna/Desktop/Coding/Code.csv')    
for i in range(0,data.shape[0],27):
        if i+27 < data.shape[0]:
            data.loc[i:i+27,'E'] = max(data['E'].iloc[i:i+27])
        else:
            data.loc[i:data.shape[0],'E'] = max(data['E'].iloc[i:data.shape[0]])
data=pd.read\u csv('/Users/Hanna/Desktop/Coding/code.csv'))
对于范围内的i(0,data.shape[0],27):
如果i+27<数据形状[0]:
data.loc[i:i+27,'E']=max(data['E'].iloc[i:i+27])
其他:
data.loc[i:data.shape[0],'E']=max(data['E'].iloc[i:data.shape[0]]

您可以将
max
替换为您想要的任何值

假设您必须查找并填充特定段的值

data = pd.read_csv('/Users/Hanna/Desktop/Coding/Code.csv')    
for i in range(0,data.shape[0],27):
        if i+27 < data.shape[0]:
            data.loc[i:i+27,'E'] = max(data['E'].iloc[i:i+27])
        else:
            data.loc[i:data.shape[0],'E'] = max(data['E'].iloc[i:data.shape[0]])
data=pd.read\u csv('/Users/Hanna/Desktop/Coding/code.csv'))
对于范围内的i(0,data.shape[0],27):
如果i+27<数据形状[0]:
data.loc[i:i+27,'E']=max(data['E'].iloc[i:i+27])
其他:
data.loc[i:data.shape[0],'E']=max(data['E'].iloc[i:data.shape[0]]


您可以将
max
替换为您想要的任何值

向我们展示一些代码,否则很难帮助你。并在问题本身的文本中提供一些数据,以便我们可以复制/粘贴它进行测试。我太懒了,无法复制所有内容…不幸的是,我只有表的代码,但不知道如何继续。我添加了代码,但无法共享CSVP。请将数据粘贴为文本。向我们展示一些代码,否则很难帮助你。并在问题本身的文本中提供一些数据,以便我们可以复制/粘贴它进行测试。我太懒了,无法复制所有内容…不幸的是,我只有表的代码,但不知道如何继续。我添加了代码,但无法共享CSVP。请将数据粘贴为文本。但是我以前不知道必须放在列中的值。所以我首先要找出最外面的值,然后把它们拉到-1和26,或者我搞错了。如果我将您的代码添加到下面的代码中,不幸的是,这些列没有填写,或者我需要调整一些内容吗?您如何知道可能需要填写哪些值?可能我表达错误,但这些值是由df_1输入到表df_c中的。因此,首先我必须检查哪些外部值在-1到26行,然后我必须用这些值填充。哦,伙计,它正在工作!精彩的!!!非常感谢你。不是两列,而是一列!!但这可能是我这边的一个错误,所以我会尽力改正。否则,我会再次询问。但是必须放在我以前不知道的列中的值。所以我首先要找出最外面的值,然后把它们拉到-1和26,或者我搞错了。如果我将您的代码添加到下面的代码中,不幸的是,这些列没有填写,或者我需要调整一些内容吗?您如何知道可能需要填写哪些值?可能我表达错误,但这些值是由df_1输入到表df_c中的。因此,首先我必须检查哪些外部值在-1到26行,然后我必须用这些值填充。哦,伙计,它正在工作!精彩的!!!非常感谢你。不是两列,而是一列!!但这可能是我这边的一个错误,所以我会尽力改正。否则我会再次询问。这听起来会对我有所帮助,但在范围(0,data.shape[0],27)中的I的“range”处出现语法错误:AttributeError:'str'对象没有属性'shape',现在显示它,但它不是字符串?你能帮个忙吗?我又发了两张图片,如果你再看一看会很好。它工作原理如何,非常感谢,但是-1到26之间为空的行中也填充了值。这听起来对我有帮助,但在“范围”处,范围(0,data.shape[0],27)中的i出现了语法错误:AttributeError:'str'对象没有属性'shape',现在显示它,但它不是字符串?你能帮个忙吗?我又发了两张照片,如果你再看一看就好了。非常感谢。但是在-1到26之间为空的行也充满了值。