我想要删除数据框中的所有行。
我这样做的原因是为了能够通过迭代循环重建数据框。我想要从完全空白的数据框开始。
或者,如果可能的话,我可以从仅包含列/类型信息的数据框创建一个空的 df。
如果您有一个现有的DataFrame,希望清空它而不用重新创建列信息,可尝试以下方法:
df_empty = df[0:0]
df_empty
是一个没有行但列结构与 df
相同的 DataFrame。
>>> 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
如果你已经有一个包含你想要的列的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)
df.drop(df.index,inplace=True)
这行代码将删除所有行,但保留列名。
旧帖子。但我找到了另一种方法
df_final=df_dup[0:0].copy(deep=True)