تحتفظ pandas في Python بالفواصل العشرية في ملف csv الناتج

0

أنا أستخدم مكتبة الباندا للقيام ببعض العمليات .csv ملف.

ملف الإدخال input.csv :

    A    B   
   1,2  2,2
   3,5  5,4 

رمز بلدي:

import pandas as pd

df = read_csv('input.csv', sep = ';', encoding = 'ANSI', decimal = ',')
'''
some operations on cells like adding, multiplying...  
'''

df.to_csv('output.csv', sep = ';', encoding = 'ANSI', index = False)

وهنا كيف بلادي output.csv يشبه:

    A    B    C   
   1.2  2.2  6.5
   3.5  5.4  7.8

ولكن هل هناك أي طريقة للاحتفاظ بالفاصل العشري الخاص بي كما فاصلة كما كان في input.csv ؟؟؟

هنا هو كيف output.csv يجب أن تبدو:

    A    B    C   
   1,2  2,2  6,5
   3,5  5,4  7,8 

لقد جربت شيئًا مثل هذا لكنه لم ينجح:

df = df.astype(str).replace('.',',')

2 الاجابة

3
افضل جواب

طريقة 1

يمكنك استخدام:

df.to_csv('output.csv', sep = ';', encoding='ANSI', index=False, decimal=",")

الطريقة 2

كبديل يمكنك أيضًا استخدامه.

df = df.applymap(lambda x: str(x).replace('.',','))

بدلا من df = df.astype(str).replace('.',',')

سيعطي:

      A   B   C
0   1,2 2,2 6,5
1   3,5 5,4 7,8

وثم

df.to_csv('output.csv', sep = ';', encoding = 'ANSI', index=False)
:مؤلف
2
افضل جواب

مثل pandas.read_csv ، يحتوي DataFrame.to_csv أيضًا على decimal جدال:

df.to_csv('output.csv', sep = ';', encoding='ANSI', index=False, decimal=",")
:مؤلف
فوق
قائمة طعام