programing

판다 데이터 프레임 열에 쉼표를 수천 개의 구분 기호로 삽입하는 방법은 무엇입니까?

bestprogram 2023. 9. 4. 20:28

판다 데이터 프레임 열에 쉼표를 수천 개의 구분 기호로 삽입하는 방법은 무엇입니까?

쉽게 볼 수 있도록 쉼표 천 구분 기호를 사용하도록 달러 금액 열을 포맷하려고 하는데 알 수가 없습니다.누가 길 좀 가르쳐 주시겠어요?

import pandas as pd
df = pd.read_excel('filename.xlsx') 
df['Dollar Amount'].head()

Index  Dollar Amount
0      5721.48
1      4000.00
2      4769.00
3       824.07
4       643.60
5       620.00

Name: Dollar Amount, dtype: float64

변환할 것입니다.float에 타자를 치다.object

df.DollarAmount.apply(lambda x : "{:,}".format(x))
Out[509]: 
0    5,721.48
1     4,000.0
2     4,769.0
3      824.07
4       643.6
5       620.0
Name: DollarAmount, dtype: object

이것은 수천 개의 분리기를 얻기 위한 더 매력적인 방법입니다.

df['Dollar Amount']=df['Dollar Amount'].apply('{:,}'.format)

다음은 다음을 사용하는 솔루션입니다.locale번호를 문자열로 포맷하는 데 문제가 없는 한 도움이 될 수 있습니다.

import pandas as pd
import locale as lc

# Get the list of all locale options
all_locales = lc.locale_alias
# I'll use US conventions since that's what you mentioned in your question
lc.setlocale(lc.LC_ALL,all_locales["en_us"])

df = pd.DataFrame({"Dollar Amount":[1000, 2000000, 2500.01]})
df["Dollars Formatted"] = df["Dollar Amount"].apply(lambda x: "$"+lc.format("%.2f",x,True))

편리한 점은locale필요에 따라 서로 다른 숫자 표기법을 쉽게 바꿀 수 있으며, 수백만과 수십억 구분자에 대해 이러한 표기법을 계속 적용할 수 있습니다.

지도 사용:

df['Dollar Amount'] = df['Dollar Amount'].map("{:,}".format)

당신은 또한 더 멋진 스타일을 사용할 수 있고 당신의 모든 스타일링을 한 줄로 할 수 있습니다.

df = df.style.format({'Dollar Amount': "{:,}"})

특정 열에 수천 개의 쉼표 구분 기호를 삽입하고 소수점을 제거해야 하는 경우:

import pandas as pd
df = pd.DataFrame([(0.21, 1000.0), (0.01, 2000000.0), (0.66, 1000.0), (0.21, 330000.0)], columns=['A', 'B'])

이전:

      A          B
0  0.21     1000.0
1  0.01  2000000.0
2  0.66     1000.0
3  0.21   330000.0

"Col B"의 경우 쉼표 구분 기호를 삽입하고 소수점을 제거합니다.위의 YOBEN_S 코드를 약간 조정하면 다음과 같은 이점이 있습니다.

lst = list(df.columns)
lst.remove('A')
for c in lst:
    df[c] = df[c].astype(int).apply(lambda x: f'{x:,}')

이후:

      A          B
0  0.21      1,000
1  0.01  2,000,000
2  0.66      1,000
3  0.21    330,000

@Benny의 답변의 f 문자열 버전:

df = pd.DataFrame({'DollarAmount': [5012.82, 1203, 4000.0, 824.07, 625.0]})
df.DollarAmount.apply(lambda x: f"{x:,}")

0    5,012.82
1     1,203.0
2     4,000.0
3      824.07
4       625.0
Name: DollarAmount, dtype: object

언급URL : https://stackoverflow.com/questions/47404472/how-to-insert-a-comma-as-a-thousands-separator-in-a-pandas-dataframe-column