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

时间:2014-07-07 14:09:04

标签: python pandas

我想删除所有数据帧中的行。

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

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

3 个答案:

答案 0 :(得分:18)

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

g

df_empty = df[0:0] 是一个DataFrame,行数为零,但列结构与df_empty相同

答案 1 :(得分:1)

后者是可能的,强烈建议 - "插入"逐行排是非常低效的。草图可以是

>>> 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

答案 2 :(得分:1)

如果现有的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)