如何在 python 中初始化二维字符串 DataFrame 数组

How to initialize a two dimensional string DataFrame array in python

我想初始化一个 31756x2 的字符串数据框。 我希望它看起来像这样:

index  column1     column2

0        A           B
1        A           B
.
.
31756    A           B

我写了:

content_split = [["A", "B"] for x in range(31756)]

这是结果:

我确实得到了一个二维列表,但我希望列像在数据框中一样分开,但我似乎无法让它工作(比如 column1: A.. ,column2: B. ..)

希望得到一些帮助。

仅使用 DataFrame 构造函数:

df = pd.DataFrame([["A", "B"] for x in range(31756)], columns=['col1','col2'])
print (df.head())

  col1 col2
0    A    B
1    A    B
2    A    B
3    A    B
4    A    B

或者:

N = 31756
df = pd.DataFrame({'col1':['A'] * N, 'col2':['B'] * N})
print (df.head())
  col1 col2
0    A    B
1    A    B
2    A    B
3    A    B
4    A    B

使用numpy.tile:

import numpy as np
df = pd.DataFrame(np.tile(list('AB'), (31756, 1)), columns=['col1','col2'])

或者只是传递字典:

df = pd.DataFrame({'A':['A']*31756, 'B':['B']*31756})

如果使用后一种方法,您可能希望对列进行显式排序,因为字典没有顺序:

df = pd.DataFrame({'A':['A']*31756, 'B':['B']*31756}).sort_index(axis=1)
import pandas as pd

df = pd.DataFrame(index=range(31756))
df.loc[:,'column1'] =  'A'
df.loc[:,'column2'] = 'B'

为了好玩

pd.DataFrame(index=range(31756)).assign(dict(col1='A', col2='B'))