![](/img/trans.png)
[英]How to read a csv dataset when converting to a float that contain nan's
[英]Panda converting data to NaN when adding to a new DataSet
我一直在尝试从给定的数据集中提取特定的数据,并将其添加到特定的有组织的列集中的新数据中。 我正在通过读取CSV文件并使用字符串函数来做到这一点。 问题是,即使正确地提取了数据,即使受影响的变量中存储了数据,Pandas也会将第二列添加为NaN,请查看下面的代码,有关如何解决此问题的任何想法?
processor=pd.DataFrame()
Hospital_beds="SH.MED.BEDS.ZS"
Mask1=data["IndicatorCode"].str.contains(Hospital_beds)
stage=data[Mask1]
Hospital_Data=stage["Value"]
Birth_Rate="SP.DYN.CBRT.IN"
Mask=data["IndicatorCode"].str.contains(Birth_Rate)
stage=data[Mask]
Birth_Data=stage["Value"]
processor["Countries"]=stage["CountryCode"]
processor["Birth Rate per 1000 people"]=Birth_Data
processor["Hospital beds per 100 people"]=Hospital_Data
processor.head(10)
这里的问题是索引不匹配。 最初填充processor
数据框时,您正在使用包含出生率数据的原始数据框中的每一行。 这些行与包含医院病床数据的行不同,因此当您执行
processor["Hospital beds per 100 people"] = Hospital_Data
熊猫将创建新列,但由于processor
中没有Hospital_Data
匹配索引,因此它将仅包含空值。
您可能首先要做的是使用国家/地区代码和年份对原始数据进行索引
data.set_index(['CountryCode','Year'], inplace=True)
然后,您可以仅创建您感兴趣的指标的视图
indicators = ['SH.MED.BEDS.ZS', 'SP.DYN.CBRT.IN'] dview = data[data.IndicatorCode.isin(indicators)]
最后然后可以枢转上的指示符的代码,以查看在同一行上的每个指示符
dview.pivot(columns='IndicatorCode')['Value']
但是请注意,这仍然会包含很多NaN。 这仅仅是因为很少更新医院的床位数据(或根本就没有在Aruba中更新)。 但是您可以根据需要将其过滤掉。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.