[英]Replacing dot with comma from a dataframe using Python
我有一個 dataframe 例如df:
我正在嘗試用逗號替換點,以便能夠在 excel 中進行計算。
我用了:
df = df.stack().str.replace('.', ',').unstack()
或者
df = df.apply(lambda x: x.str.replace('.', ','))
結果:
沒有任何變化,但我在執行結束時收到他的警告,沒有錯誤:
FutureWarning:正則表達式的默認值將在未來版本中從 True 更改為 False。 此外,當 regex=True 時,單字符正則表達式不會被視為文字字符串。
查看我所擁有的:
預期成績:
感謝@Pythonista 匿名更新問題以獲取更多信息:
print(df.dtypes)
返回:
Date object
Open object
High object
Low object
Close object
Adj Close object
Volume object
dtype: object
我正在使用 to_excel 方法提取數據:
df.to_excel()
我不是在 a.csv 文件中導出 dataframe 而是在 an.xlsx 文件中導出
dataframe 從何而來——它是如何產生的? 它是從 CSV 文件導入的嗎?
只要您記得執行df = df.apply()
而不僅僅是df.apply()
,您的代碼就可以將其應用於字符串列,例如:
import pandas as pd
df = pd.DataFrame()
df['a'] =['some . text', 'some . other . text']
df = df.apply(lambda x: x.str.replace('.', ','))
print(df)
但是,您嘗試使用數字而不是字符串來執行此操作。 准確地說,另一個問題是:您的 dataframe 的 dtype 是什么? 如果你輸入
df.dtypes
output 是什么?
我想你的列是數字而不是字符串,對吧? 畢竟,如果它們是數字,它們應該這樣存儲在您的 dataframe 中。
下一個問題:你是如何將這個表導出到 Excel 的?
如果您要保存 csv 文件,pandas 的to_csv()
方法有一個decimal
參數,可讓您指定小數點的分隔符(通常在英語世界中為點,在歐洲大陸的許多國家中為逗號)。 查找語法。
如果您使用的是 to_excel() 方法,則無關緊要,因為 Excel 應在內部將其視為數字,以及如何顯示它(無論是用點還是逗號作為小數分隔符)通常取決於您在計算機。
請說明您如何導出數據以及在 Excel 中打開它時會發生什么: Excel 是否將其視為字符串? 或者作為數字,但您希望看到不同的小數分隔符?
Also look here for how to change decimal separators in Excel: https://www.officetooltips.com/excel_2016/tips/change_the_decimal_point_to_a_comma_or_vice_versa.html
OP,您還沒有解釋 dataframe 的來源。 您是否從外部來源導入它? 您自己創建/計算它嗎? 列是對象的事實使我認為它們要么存儲為字符串,要么有些行是數字的,有些則不是。
如果您嘗試將列轉換為浮點數會發生什么?
df['Open'] = df['Open'].astype('float64')
如果整個列應該是數字但不是,那么首先清理您的數據。
第二個問題:當你使用 Excel 打開你剛剛創建的文件時會發生什么? Excel 顯示一個逗號,但 Excel 要求分隔小數的字符取決於 Windows/Mac/Excel 設置,而不取決於 pandas 創建文件的方式。 您是否嘗試過我上面給出的鏈接,您可以更改 Excel 顯示小數的方式嗎? 此外,Excel 是否將這些數字視為數字或字符串?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.