在 pandas 中填写缺失值错误?
Fill missing values error in pandas?
我有一个包含很多 URL 的数据框。但是,有些丢失了。它基本上是这样的:
import pandas as pd
import numpy as np
csv = [{"url_1" : np.NaN, "url_2" : "https://www.mercedes-benz.de/content/germany/mpc/mpc_germany_website/de/home_mpc/passengercars/home/new_cars/models/mercedes_amg_gt/r190.html"}]
df = pd.DataFrame(csv)
在这种情况下,缺少 url_1
。我正在尝试用 url_2
列中的条目替换它。这就是我所做的:
df.url_1 = df.url_1.fillna(df.url_2, inplace=True)
这是结果:
url_1 url_2
0 None https://www.mercedes-benz.de/content/germany/m...
我有两个问题:
(1)为什么缺失值没有被替换?
(2) 在原始数据集中我被抛出一个错误:invalid fill value with a <class 'pandas.core.frame.DataFrame'>
数据框看起来完全一样——至少我在上面介绍的小测试中没有得到错误。该错误告诉我什么以及如何消除它?
非常感谢任何帮助!谢谢 /R
如果想要赋值输出,你需要移除inplace
,因为如果inplace
参数函数return None
:
df.url_1 = df.url_1.fillna(df.url_2)
print (df)
url_1 \
0 https://www.mercedes-benz.de/content/germany/m...
url_2
0 https://www.mercedes-benz.de/content/germany/m...
print (df.url_1.fillna(df.url_2, inplace=True))
None
或者不分配和使用inplace
:
df.url_1.fillna(df.url_2, inplace=True)
print (df)
url_1 \
0 https://www.mercedes-benz.de/content/germany/m...
url_2
0 https://www.mercedes-benz.de/content/germany/m...
(1) & (2)
您不能使用赋值和关键字 inplace
df['url_1'] = df['url_1'].fillna(df['url_2'])
# or
df['url_1'].fillna(df['url_2'], inplace=True)
这应该可以解决这两个问题。
我有一个包含很多 URL 的数据框。但是,有些丢失了。它基本上是这样的:
import pandas as pd
import numpy as np
csv = [{"url_1" : np.NaN, "url_2" : "https://www.mercedes-benz.de/content/germany/mpc/mpc_germany_website/de/home_mpc/passengercars/home/new_cars/models/mercedes_amg_gt/r190.html"}]
df = pd.DataFrame(csv)
在这种情况下,缺少 url_1
。我正在尝试用 url_2
列中的条目替换它。这就是我所做的:
df.url_1 = df.url_1.fillna(df.url_2, inplace=True)
这是结果:
url_1 url_2
0 None https://www.mercedes-benz.de/content/germany/m...
我有两个问题:
(1)为什么缺失值没有被替换?
(2) 在原始数据集中我被抛出一个错误:invalid fill value with a <class 'pandas.core.frame.DataFrame'>
数据框看起来完全一样——至少我在上面介绍的小测试中没有得到错误。该错误告诉我什么以及如何消除它?
非常感谢任何帮助!谢谢 /R
如果想要赋值输出,你需要移除inplace
,因为如果inplace
参数函数return None
:
df.url_1 = df.url_1.fillna(df.url_2)
print (df)
url_1 \
0 https://www.mercedes-benz.de/content/germany/m...
url_2
0 https://www.mercedes-benz.de/content/germany/m...
print (df.url_1.fillna(df.url_2, inplace=True))
None
或者不分配和使用inplace
:
df.url_1.fillna(df.url_2, inplace=True)
print (df)
url_1 \
0 https://www.mercedes-benz.de/content/germany/m...
url_2
0 https://www.mercedes-benz.de/content/germany/m...
(1) & (2)
您不能使用赋值和关键字 inplace
df['url_1'] = df['url_1'].fillna(df['url_2'])
# or
df['url_1'].fillna(df['url_2'], inplace=True)
这应该可以解决这两个问题。