我是python的新手,需要从包含恐怖主义数据的csv文件中提取信息。
我需要提取人员伤亡最大的印度前5个城市,其中伤亡率=被杀死(以CSV给出)+受伤(以CSV给出)。 CSV文件中也提供了“城市”列。
输出格式应按下面的顺序从下至上
city_1伤亡_1_1城市_2伤亡_2city_3伤亡_3city_4 Casualty_4 city_5 Casualty_5
import numpy as np
import csv
file_obj=open("terrorismData.csv",encoding="utf8")
file_data=csv.DictReader(file_obj,skipinitialspace=True)
country=[]
killed=[]
wounded=[]
city=[]
final=[]
#Making lists
for row in file_data:
if row['Country']=='India':
country.append(row['Country'])
killed.append(row['Killed'])
wounded.append(row['Wounded'])
city.append(row['City'])
final.append([row['City'],row['Killed'],row['Wounded']])
#Making numpy arrays out of lists
np_month=np.array(country)
np_killed=np.array(killed)
np_wounded=np.array(wounded)
np_city=np.array(city)
np_final=np.array(final)
#Fixing blank values in final arr
for i in range(len(np_final)):
for j in range(len(np_final[0])):
if np_final[i][j]=='':
np_final[i][j]='0.0'
#Counting casualities(killed+wounded) and storing in 1st column of final array
for i in range(len(np_final)):
np_final[i,1]=float(np_final[i,1])+float(np_final[i,2])
#Descending sort on casualities column
np_final=np_final[np_final[:,1].argsort()[::-1]]
我希望np_final对列的伤亡人数进行排序,但这不会发生,因为type(casualities)以'String'的形式出现
感谢您的帮助。
答案 0 :(得分:0)
我愿意为您使用Pandas。您可以更轻松地操作日期。 将所有内容读取到DataFrame。它应该将数字读为数字格式。
如果在读取数据时必须使用np,则可以简单地将值强制转换为浮点数或整数,并且如果没有其他错误,一切都可以正常工作。 像这样:
<androidx.constraintlayout.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:visibility="@{myVar == STRING_SUCCESS ? View.GONE : View.VISIBLE}">