我在数据框中有一列。该行中有一个空系列:
0 4.5
1 0.5
2 8
3 8
4 8
...
704 3.5
705 0.5
706 11.5
707 0.5
708 Series([], Name: price, dtype: float64)
Name: pricediff, Length: 709, dtype: object",
0 4
1 0.5
2 2.5
3 19.5
4 19.5
...
58 1
59 4
60 8.5
61 Series([], Name: price, dtype: float64)
62 Series([], Name: price, dtype: float64)
Name: pricediff, Length: 63, dtype: object",
如何删除行或将其替换为0,而无需直接执行df.drop(df.index [61])等,因为我有多个数据
答案 0 :(得分:1)
您可以检查每个元素是否为空序列,然后替换所有这些条目。
首先,我们将创建一个测试数据框。
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(0, 100, (3, 3)))
df[3] = [1, pd.Series([]), 5]
所以,我们有:
0 1 2 3
0 31 29 1 1
1 86 86 71 Series([], dtype: float64)
2 86 80 21 5
现在,我们引入一个将空Series设为0并将其应用于我们的DataFrame的函数。
def make_empty_series_zero(element):
if isinstance(element, pd.Series) and len(element) == 0:
return 0
else:
return element
df.applymap(make_empty_series_nan)
将其应用于我们的DataFrame之后,我们将:
0 1 2 3
0 57 58 2 1
1 96 27 8 0
2 0 43 91 5