如何删除数据框中的所有行?

cam*_*mil 8 python pandas

我想删除数据框中的所有行.

我想这样做的原因是我可以用迭代循环重建数据帧.我想从一个完全空的数据帧开始.

或者,如果可能的话,我可以仅从列/类型信息创建一个空df

ash*_*gal 22

如果您要在不重新创建列信息的情况下清空现有的DataFrame,这是另一种方法:

df_empty = df[0:0]
Run Code Online (Sandbox Code Playgroud)

df_empty 是一个具有零行但具有相同列结构的DataFrame df


rac*_*hwa 8

您还可以使用head

df_empty = df.head(0)
Run Code Online (Sandbox Code Playgroud)


Foo*_*Bar 7

后者是可能的并且强烈推荐 - 逐行“插入”行效率非常低。草图可以是

>>> import numpy as np
>>> import pandas as pd
>>> index = np.arange(0, 10)
>>> df = pd.DataFrame(index=index, columns=['foo', 'bar'])
>>> df
Out[268]: 
   foo  bar
0  NaN  NaN
1  NaN  NaN
2  NaN  NaN
3  NaN  NaN
4  NaN  NaN
5  NaN  NaN
6  NaN  NaN
7  NaN  NaN
8  NaN  NaN
9  NaN  NaN
Run Code Online (Sandbox Code Playgroud)


Lel*_*uch 6

如果您有一个包含所需列的现有 DataFrame,则将列名称提取到列表理解中,然后使用您的列名称创建一个空 DataFrame。

# Creating DataFrame from a CSV file with desired headers
csv_a = "path/to/my.csv"
df_a = pd.read_csv(csv_a)

# Extract column names into a list
names = [x for x in df_a.columns]

# Create empty DataFrame with those column names
df_b = pd.DataFrame(columns=names)
Run Code Online (Sandbox Code Playgroud)

  • 我认为这不会包括列类型信息 (2认同)

Emi*_*lar 5

df.drop(df.index,inplace=True) 
Run Code Online (Sandbox Code Playgroud)

此行将删除所有行,同时保留列名。