0

データフレームに x 個の空白列を追加しようとしています。

これが私の機能です:

def fill_with_bars(df, number=10):
    '''
    Add blank, empty columns to dataframe, at position 0
    '''

    numofcols = len(df.columns)

    while numofcols < number:
        whitespace = ''
        df.insert(0, whitespace, whitespace, allow_duplicates=True)
        whitespace += whitespace
    return df

しかし、私はこのエラーが発生します

ValueError: Wrong number of items passed 2, placement implies 1

何が間違っているのかわかりませんか?

4

2 に答える 2

2

一度に列を挿入するのではなく、必要なディメンションの df を作成してから、次のように呼び出しますconcat

In [72]:
def fill_with_bars(df, number=10):
    return pd.concat([pd.DataFrame([],index=df.index, columns=range(10)).fillna(''), df], axis=1)
​
df = pd.DataFrame({'a':np.arange(10), 'b':np.arange(10)})
fill_with_bars(df)

Out[72]:
  0 1 2 3 4 5 6 7 8 9  a  b
0                      0  0
1                      1  1
2                      2  2
3                      3  3
4                      4  4
5                      5  5
6                      6  6
7                      7  7
8                      8  8
9                      9  9

そのエラーが発生する理由について:

これは、 str が単一の空白ではなく、空の文字列であるためです。

In [75]:
whitespace = ''
whitespace + whitespace
Out[75]:
''

そのため、3 回目の繰り返しでは、1 つの列しかないと予想して列を検索しようとしていますが、2 つの列があるため、内部チェックに失敗し、2 つの列が見つかりました''

于 2015-06-17T12:22:24.850 に答える