Добавить одну строку в панды DataFrame

Завершить чистую программу C для любой матрицы 2D-массива с заданной строкой x column .

#include <stdio.h>
void  printspiral(int *p,int r, int c) {    
    int i=0,j=0,m=1,n=0;
    static int firstrun=1,gCol;
    if (!p||r<=0||c<=0)
        return ;
    if(firstrun) {
        gCol=c;
        firstrun=0;
    }
    for(i=0,j=0;(0<=i && i<c)&&(0<=j && j<r);i+=m,j+=n) {                                                                               
        printf(" %d",p[i+j*gCol]);                                                                                                      
        if (i==0 && j==1 && (i+1)!=c) break;                                                                                            
        else if (i+1==c && !j) {m=0;n=1;}                                                                                               
        else if (i+1==c && j+1==r && j) {n=0;m=-1;}                                                                                     
        else if (i==0 && j+1==r && j) {m=0;n=-1;}                                                                                       
    }                                                                                                                                   
    printspiral(&p[i+j*gCol+1],r-2,c-2);                                                                                                
    firstrun=1;                                                                                                                         
    printf("\n");                                                                                                                       
}                                                                                                                                       
int main() {                                                                                                                            
    int a[3][3]={{0,1,2},{3,4,5},{6,7,8}};                                                                                              
    int b[3][4]={{0,1,2,3},{4,5,6,7},{8,9,10,11}};                                                                                      
    int c[4][3]={{0,1,2},{3,4,5},{6,7,8},{9,10,11}};                                                                                    
    int d[3][1]={{0},{1},{2}};                                                                                                          
    int e[1][3]={{0,1,2}};                                                                                                              
    int f[1][1]={{0}};                                                                                                                  
    int g[5][5]={{0,1,2,3,4},{5,6,7,8,9},{10,11,12,13,14},{15,16,17,18,19},{20,21,22,23,24}};
    printspiral(a,3,3);                                                                                                                 
    printspiral(b,3,4);                                                                                                                 
    printspiral(c,4,3);                                                                                                                 
    printspiral(d,3,1);                                                                                                                 
    printspiral(e,1,3);                                                                                                                 
    printspiral(f,1,1);                                                                                                                 
    printspiral(g,5,5);
    return 0;                                                                                                                           
}
656
задан cs95 3 January 2019 в 15:25
поделиться

2 ответа

Мы часто видим конструкцию df.loc[subscript] = … для присвоения одной строке DataFrame. Mikhail_Sam отправил сравнительные тесты содержащий, среди других, этой конструкции, а также метода с помощью dict, и создайте DataFrame в конце . Он нашел, что последний был самым быстрым безусловно. Но если мы заменяем df3.loc[i] = … (с предварительно выделенным DataFrame) в его коде с df3.values[i] = …, результат значительно изменяется в том, что метод работает подобный тому с помощью dict. Таким образом, мы должны чаще брать использование df.values[subscript] = … к рассмотрению. Однако обратите внимание, что .values берет основанный на нуле нижний индекс, который может отличаться от DataFrame.index.

-1
ответ дан 22 November 2019 в 21:33
поделиться

Можно использовать объект генератора для создания Кадра данных, который будет большей памятью, эффективной по списку.

num = 10

# Generator function to generate generator object
def numgen_func(num):
    for i in range(num):
        yield ('name_{}'.format(i), (i*i), (i*i*i))

# Generator expression to generate generator object (Only once data get populated, can not be re used)
numgen_expression = (('name_{}'.format(i), (i*i), (i*i*i)) for i in range(num) )

df = pd.DataFrame(data=numgen_func(num), columns=('lib', 'qty1', 'qty2'))

, Чтобы добавить сырые данные к существующему DataFrame можно использовать, добавляют метод.

df = df.append([{ 'lib': "name_20", 'qty1': 20, 'qty2': 400  }])
2
ответ дан 22 November 2019 в 21:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: