00_*_*_00 10 python dataframe pandas
我有一个空的dataframe.
df=pd.DataFrame(columns=['a'])
Run Code Online (Sandbox Code Playgroud)
由于某种原因,我想生成df2,另一个空数据帧,有两列'a'和'b'.
如果我做
df.columns=df.columns+'b'
Run Code Online (Sandbox Code Playgroud)
它不起作用(我将列重命名为'ab')并且以下都没有
df.columns=df.columns.tolist()+['b']
Run Code Online (Sandbox Code Playgroud)
如何在df中添加单独的列'b',并df.emtpy继续保持True?
使用.loc也是不可能的
df.loc[:,'b']=None
Run Code Online (Sandbox Code Playgroud)
因为它返回
Cannot set dataframe with no defined index and a scalar
Run Code Online (Sandbox Code Playgroud)
Sum*_*Jha 15
以下是将空列添加到空数据框的几种方法:
df=pd.DataFrame(columns=['a'])
df['b'] = None
df = df.assign(c=None)
df = df.assign(d=df['a'])
df['e'] = pd.Series(index=df.index)
df = pd.concat([df,pd.DataFrame(columns=list('f'))])
print(df)
Run Code Online (Sandbox Code Playgroud)
输出:
Empty DataFrame
Columns: [a, b, c, d, e, f]
Index: []
Run Code Online (Sandbox Code Playgroud)
我希望它有所帮助.
Ben*_*n.T 10
如果你这样做,df['b'] = None那么df.empty仍然True是df是:
Empty DataFrame
Columns: [a, b]
Index: []
Run Code Online (Sandbox Code Playgroud)
编辑:要从df2列中df添加空列并添加新列,您可以执行以下操作:
df2 = pd.DataFrame(columns = df.columns.tolist() + ['b', 'c', 'd'])
Run Code Online (Sandbox Code Playgroud)
如果您想同时添加多个列,您还可以重新索引。
new_cols = ['c', 'd', 'e', 'f', 'g']
df2 = df.reindex(df.columns.union(new_cols), axis=1)
#Empty DataFrame
#Columns: [a, c, d, e, f, g]
#Index: []
Run Code Online (Sandbox Code Playgroud)
这是一种方式:
df2 = df.copy()
df2 = df2.join(pd.DataFrame(columns=['b']))
Run Code Online (Sandbox Code Playgroud)
此方法的优点是您可以添加任意数量的列而无需显式循环.
此外,如果不存在数据,这满足您df.empty评估的要求True.
| 归档时间: |
|
| 查看次数: |
14459 次 |
| 最近记录: |