英文:
Shifting column values in Pandas Dataframe causes missing values
问题
我想将列值向左移动一个空格。我不想保存列'average_rating'的原始值。
我使用了shift命令:
data3 = data3.shift(-1, axis=1)
但我得到的输出中有两列缺失值-'num_pages'和'text_reviews_count'。
英文:
I want to shift column values one space to the left. I don't want to save the original values of the column 'average_rating'.
I used the shift command:
data3 = data3.shift(-1, axis=1)
But the output I get has missing values for two columns- 'num_pages' and 'text_reviews_count'
答案1
得分: 1
由于源列和目标列的数据类型不匹配。尝试在shift()
后将列值转换为每个源列和目标列的目标数据类型,例如.fillna(0).astype(int)
。
或者,您可以将数据框中的所有数据都转换为字符串,然后执行移位操作。然后,您可能希望将它们再次转换回其原始数据类型。
df = df.astype(str) # 将所有数据转换为字符串
df_shifted = (df.shift(-1,axis=1)) # 执行移位操作
df_string = df_shifted.to_csv() # 将移位后的数据存储到一个字符串变量中
new_df = pd.read_csv(StringIO(df_string), index_col=0) # 从字符串变量中重新读取数据
输出:
average_rating isbn isbn13 language_code num_pages ratings_count text_reviews_count extra
0 3.57 0674842111 978067 en-US 236 55 6.0 NaN
1 3.60 1593600119 978067 eng 400 25 4.0 NaN
2 3.63 156384155X 978067 eng 342 38 4.0 NaN
3 3.98 1857237250 978067 eng 383 2197 17.0 NaN
4 0.00 0851742718 978067 eng 49 0 0.0 NaN
英文:
It is because the data types of the source and target columns do not match. Try converting the column value after shift()
to the target data type for each source and target column - for example .fillna(0).astype(int)
.
Alternately, you can convert all the data in the data frame to strings and then perform the shift. You might want to convert them back to their original data types again.
df = df.astype(str) # convert all data to str
df_shifted = (df.shift(-1,axis=1)) # perform the shift
df_string = df_shifted.to_csv() # store the shifted to a string variable
new_df = pd.read_csv(StringIO(df_string), index_col=0) # read the data again from the string variable
Output:
average_rating isbn isbn13 language_code num_pages ratings_count text_reviews_count extra
0 3.57 0674842111 978067 en-US 236 55 6.0 NaN
1 3.60 1593600119 978067 eng 400 25 4.0 NaN
2 3.63 156384155X 978067 eng 342 38 4.0 NaN
3 3.98 1857237250 978067 eng 383 2197 17.0 NaN
4 0.00 0851742718 978067 eng 49 0 0.0 NaN
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论