我有一個單一行的熊貓數據框。我想同時添加一列名爲new_cols
的列,並將它們的所有值設置爲0.熊貓:將特定列設置爲0
是否有直接的方法可以做到這一點?
我嘗試:
article_features[new_cols] = 0
但是,這並不工作:(
感謝
我有一個單一行的熊貓數據框。我想同時添加一列名爲new_cols
的列,並將它們的所有值設置爲0.熊貓:將特定列設置爲0
是否有直接的方法可以做到這一點?
我嘗試:
article_features[new_cols] = 0
但是,這並不工作:(
感謝
使用pd.DataFrame.reindex_axis
和fill_value=0
參數。
df.reindex_axis(df.columns.union(new_cols), axis=1, fill_value=0)
a b c c1 c2 c3
0 1 2 3 0 0 0
1 4 5 6 0 0 0
或者字符串使用fill_value='0'
df.reindex_axis(df.columns.union(new_cols), 1, fill_value='0')
a b c c1 c2 c3
0 1 2 3 0 0 0
1 4 5 6 0 0 0
設置
我借的對象從@MaxU
df = pd.DataFrame({'a': [1, 4], 'b': [2, 5], 'c': [3, 6]})
new_cols = ['c1', 'c2', 'c3']
我們可以用assign
方法
演示:
In [43]: df
Out[43]:
a b c
0 1 2 3
1 4 5 6
In [44]: new_cols
Out[44]: ['c1', 'c2', 'c3']
備選方案1:
In [46]: df = df.assign(**{c:0 for c in new_cols})
In [47]: df
Out[47]:
a b c c1 c2 c3
0 1 2 3 0 0 0
1 4 5 6 0 0 0
選項2:
In [106]: df = df.join(pd.DataFrame(0, df.index, new_cols))
In [107]: df
Out[107]:
a b c c1 c2 c3
0 1 2 3 0 0 0
1 4 5 6 0 0 0
加入字符串值:
In [49]: df = df.assign(**{c:'0' for c in new_cols})
In [50]: df
Out[50]:
a b c c1 c2 c3
0 1 2 3 0 0 0
1 4 5 6 0 0 0
In [51]: df.dtypes
Out[51]:
a int64
b int64
c int64
c1 object
c2 object
c3 object
dtype: object
您可以在一個循環中添加列:
for col in new_cols:
df[col] = 0
什麼是'new_cols'的數據類型? – DyZ
@DYZ這是一個字符串 – bclayman
_list_從哪裏來,然後呢? – DyZ