python-3.x - python - 将整数存储为整数而不是浮点数

我执行以下操作:


import pandas as pd



df_texts = pd.read_csv('data_texts.csv', keep_default_na=True)



for index, row in df_texts.iterrows(): 



 list_of_words = row['text'].split()



 df_texts.loc[index, '#_words'] = len(list_of_words)



 list_of_unique_words = set(list_of_words) 



 df_texts.loc[index, '#_unique_words'] = len(list_of_unique_words)



问题是#_words#_unique_words列的数字是以浮点数存储的,即使它们是整数。

如何将它们直接存储为整数?

时间:

可以将int函数应用于所需的列:


df= pd.DataFrame({


 'n':[1.12, 1.2345, 5.234]


})


df['n'] = df['n'].apply(lambda x: int(x))


df




 n


0 1


1 1


2 5



你可以在这里找到一些变通方法:

默认情况下pd.read_csv将整数视为浮点数

以一些虚拟数据为例:


import pandas as pd


texts = ['word1 word2 word3', 'word1 word2 word1', 'word3']



df_texts = pd.DataFrame(texts, columns = ['text'])


 text


0 word1 word2 word3


1 word1 word2 word1


2 word3



分别使用文本列计算所有行的长度,然后分配。


temp = df_texts['text'].str.split()


df_texts['#_words'] = [len(row) for row in temp] #iterates and creates a list of all lengths. assign to df


df_texts['#_unique_words'] = [len(set(row)) for row in temp]



print(df_texts)


#Output:


 text #_words #_unique_words


0 word1 word2 word3 3 3


1 word1 word2 word1 3 2


2 word3 1 1



...