Python,处理数据框

时间:2018-07-17 16:20:08

标签: python dataframe

Department = input("what dept")

editfile = pd.read_csv('52.csv', encoding='Latin-1')
editfilevalues= editfile.loc[editfile['Customer'].str.contains(Department, na=False), 'May-18\nQty']
editfilevalues = editfilevalues.fillna(int(0))

print(int(editfilevalues) *1.3)

我已经查看了stackoverflow,但似乎没有答案可以帮助我解决这个问题。我只是希望能够像这样的系列操作数据,但是遇到不同的错误,在当前代码中,我收到以下消息:

"{0}".format(str(converter))) TypeError: cannot convert the series to <class 'int'>

我的主要问题是将系列转换为int类型,我尝试了几种不同的方法来完成此操作,但没有一个给我结果

1 个答案:

答案 0 :(得分:1)

因此,熊猫系列有点像一个列表,但是具有不同的功能和属性。您不能使用int()将Series转换为int,因为该函数并非旨在以这种方式在类似列表的对象上工作。

如果需要将Series转换为所有整数,此方​​法将起作用。

int_series = your_series.astype(int)

这将使您的整个系列特别是“ int32”。如果您希望将其放在numpy数组中,则下面是一个奖励。

int_array = your_series.values.astype(int)

从这里开始,您有一些选择可以进行计算。

# where x is a value in your series and lambda is a nameless function
calculated_series = int_series.apply(lambda x: some_number*x)

输出将是另一个Series对象,其中将计算您的行。使用下面的numpy数组奖励。

calculated_array = int_array * some_number

编辑以立即显示所有内容。

# for series 
int_series = your_series.astype(int)
calculated_series = int_series.apply(lambda x: x * some_number)

# for np.array
int_array = your_series.values.astype(int)
calculated_array = int_array * some_number

这两种方法都可以使用,最终取决于最终所需的数据结构。