使用Python3复制xlsx的整个列并将其粘贴在同一列下

时间:2018-12-05 14:57:32

标签: python pandas openpyxl

所以我要做的是选择一列,然后将值复制到我选择的同一列下,我知道我可以使用pandas dataframe来按名称选择列,但是我不知道它是否更好改用openpyxl。关于此有很多类似的问题,但是没有人回答我的问题。这是我尝试使用数据帧和numpy的代码:

double* read_text(const char *fileName, int sizeR, int sizeC)
{
    double* data = new double[sizeR*sizeC];
    int i = 0;
    ifstream myfile(fileName);
    if (myfile.is_open())
    {

        while (myfile.good())
        {
            if (i > sizeR*sizeC - 1) break;
            myfile >> *(data + i);
            //cout << *(data + i) << ' '; // Displays converted data.
            i++;
        }
        myfile.close();
    }

    else cout << "Unable to open file";
    //cout << i;

    return data;
}
  

哪个是最佳选择,直接使用openpyxl或使用pandas,然后使用writer生成xlsx?

在此question中,他们使用df_try或concat(),但是我怎么知道应该重复的次数。

2 个答案:

答案 0 :(得分:0)

只需使用NewDF = pd.concat([df, df]) 这将复制df的所有行。

如果您尝试将行重复3次或其他奇数间隔,则可以将临时df混在一起以获得所需的结果(要添加df的两个副本,请使用以下命令):

tempdf = pd.concat([df, df])

NewDF = pd.concat([df, tempdf])

答案 1 :(得分:0)

最佳通常过于主观而无济于事,正是由于这个原因,要求图书馆推荐的问题将被关闭。

如果您出于统计目的等目的并没有对数据进行任何实际处理,那么您可能不需要熊猫。坚持使用单个库可能意味着您的代码更易于理解和维护。

openpyxl中的一种方法将允许您简单地append()当前工作表末尾的日期。这样的事情:(代码可能需要进行一些更改)。

for row in ws:
   ws.append(row[:1])