Python 3.x 在数据框中填充上面空行中的文本
下面是一个使用熊猫的数据帧示例。关于表格格式,我很抱歉。 我想在“测试用例”列中获取文本“RF-543”,并将其填充到上面的两个空行中。 同样,对于“testcase”列中的文本“RT-483”,我希望将其填充到上面的三个空行中。 我有超过900行的数据,其中有不同的空行,将填充下一个非空行。如有任何建议,我们将不胜感激 请求# 测试用例 745 AB-003 348 AA-006 932 335 675 RF-543 348 988 444 124 RT-483Python 3.x 在数据框中填充上面空行中的文本,python-3.x,pandas,dataframe,Python 3.x,Pandas,Dataframe,下面是一个使用熊猫的数据帧示例。关于表格格式,我很抱歉。 我想在“测试用例”列中获取文本“RF-543”,并将其填充到上面的两个空行中。 同样,对于“testcase”列中的文本“RT-483”,我希望将其填充到上面的三个空行中。 我有超过900行的数据,其中有不同的空行,将填充下一个非空行。如有任何建议,我们将不胜感激 请求# 测试用例 745 AB-003 348 AA-006 932 335 675 RF-543 348 988 444 124 RT-483 试着这样做: df.loc[d
试着这样做:
df.loc[df["Test Case"] == '', "Test Case"] = np.nan
df.bfill()
输出
Req# Test Case
0 745 AB-003
1 348 AA-006
2 932 RF-543
3 335 RF-543
4 675 RF-543
5 348 RT-483
6 988 RT-483
7 444 RT-483
8 124 RT-483
如果是以下情况: 创建数据帧测试 使用[fillna]方法 如果字段为空:
>>> df = pd.DataFrame({"A": ["apple", "", "", "banana", "", "grape"]})
>>> df
A
0 apple
1
2
3 banana
4
5 grape
>>> df = df.apply(lambda x: x["A"] if x["A"] != "" else np.nan, axis=1)
>>> df
0 apple
1 NaN
2 NaN
3 banana
4 NaN
5 grape
dtype: object
然后,使用
fillna()
df.replace('',np.nan).bfill()
谢谢你,保罗。你的代码行对我有用。
>>> df["A"].fillna(method='bfill', inplace=True)
>>> df
0 apple
1 banana
2 banana
3 banana
4 grape
5 grape
Name: A, dtype: object
>>> df = pd.DataFrame({"A": ["apple", "", "", "banana", "", "grape"]})
>>> df
A
0 apple
1
2
3 banana
4
5 grape
>>> df = df.apply(lambda x: x["A"] if x["A"] != "" else np.nan, axis=1)
>>> df
0 apple
1 NaN
2 NaN
3 banana
4 NaN
5 grape
dtype: object