[英]Pandas DataFrame - how to drop the entire category containing null values for specific columns
[英]How to join two columns of a pandas dataframe containing null values?
我有数据框熊猫:
import numpy as np
import pandas as pd
df = pd.DataFrame({'ID': [1,2,3,4,5],
'column_1': [10.6, 10.4, np.NaN, np.NaN, np.NaN],
'column_2': [np.NaN, np.NaN, 30, 40, 50]
})
print(df)
ID column_1 column_2
1 10.6 NaN
2 10.4 NaN
3 NaN 30.0
4 NaN 40.0
5 NaN 50.0
我想在数据框中创建一个新列,它是第 1 列和第 2 列的连接点。所以我尝试执行以下代码:
df['column_1'] = df['column_1'].astype(float)
df['column_2'] = df['column_2'].astype(float)
df['new_column'] = [''.join(i) for i in zip(df['column_1'],
df['column_2'])]
但是,当我运行我的创建新列时,出现以下错误: TypeError: sequence item 0: expected str instance, float found
注意:我尝试使用 astype() 将列转换为浮点类型,但问题仍然存在。 我该如何解决?
我希望输出为:
ID column_1 column_2 new_columns
1 10.6 NaN 10.6
2 10.4 NaN 10.4
3 NaN 30.0 30.0
4 NaN 40.0 40.0
5 NaN 50.0 50.0
import numpy as np
import pandas as pd
df = pd.DataFrame({
'ID': [1,2,3,4,5],
'column_1': [10.6, 10.4, np.NaN, np.NaN, np.NaN],
'column_2': [np.NaN, np.NaN, 30, 40, 50]
})
df['column_1'] = df['column_1'].astype(float)
df['column_2'] = df['column_2'].astype(float)
df['new_column'] = df['column_1'].combine_first(df['column_2'])
print(df)
结果:
ID column_1 column_2 new_column
0 1 10.6 NaN 10.6
1 2 10.4 NaN 10.4
2 3 NaN 30.0 30.0
3 4 NaN 40.0 40.0
4 5 NaN 50.0 50.0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.