我想删除所有数据帧中的行。
我想这样做的原因是我可以用迭代循环重建数据帧。我想从一个完全空的数据框开始。
或者,如果可能的话,我可以从列/类型信息中创建一个空的df
答案 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)