93711

[code]

    import numpy as np
    import pandas as pd
    df_maize = pd.read_csv("PSD online data maize.csv")
    print(df_maize["Name"])
    print(df_maize["Production"])
    print(df_maize["Exports"])
    
[/code]

#プリントした結果を見ると4桁以下のデータがint64で5桁以上のデータがobjectになっています#  
0 2013  
1 2014  
2 2015  
3 2016  
4 2017  
5 2018  
6 2019  
7 2020  
8 2021  
9 2022  
Name: Name, dtype: int64  
0 248,453  
1 249,764  
2 264,992  
3 263,613  
4 259,071  
5 257,174  
6 260,779  
7 260,670  
8 272,552  
9 277,200  
Name: Production, dtype: object  
0 22  
1 13  
2 4  
3 61  
4 19  
5 19  
6 12  
7 4  
8 3  
9 20  
Name: Exports, dtype: int64


CC BY-SA 4.0
2023-02-05T06:51:08.857
93708
2023-02-05T07:42:03.747
56639
question
python pandas numpy
dtypeをobjectからint64に変更する方法を教えてください


`,`を取り除きます．

[code]

    ...
    >>> df_maize.loc[:, "Production"].str.replace(",", "").astype("int64")
    0    248453
    1    249764
    2    264992
    3    263613
    4    259071
    5    257174
    6    260779
    7    260670
    8    272552
    9    277200
    Name: Production, dtype: int64
    
    
[/code]


CC BY-SA 4.0
2023-02-05T07:27:22.677
93711
2023-02-05T07:27:22.677
51374
93708
answer


使っているCSVデータファイルの内容を提示すると助言・回答が出やすいでしょう。  
関連する列だけを抽出すれば、おそらくこんなデータになっているのでは？

[code]

    Name,Production,Exports
    2013,"248,453",22
    2014,"249,764",13
    2015,"264,992",4
    2016,"263,613",61
    2017,"259,071",19
    2018,"257,174",19
    2019,"260,779",12
    2020,"260,670",4
    2021,"272,552",3
    2022,"277,200",20
    
[/code]

[pandas.read_csv](https://pandas.pydata.org/docs/reference/api/pandas.read_csv.html)のパラメータに`thousands`というのがあり、それを指定すれば読み込み時に対処してくれるでしょう。

> thousands : str, optional  
>  Thousands separator.

[【pandas】read_csvの使い方まとめ](https://www.self-study-blog.com/dokugaku/python-
pandas-dataframe-read_csv/)

> 数値・文字列を指定・変更する方法  
>  引数 デフォルト値 意味  
>  thousands None 桁区切り文字を指定できる。例えば','など。

ということで、こちらの行を：

[code]

    df_maize = pd.read_csv("PSD online data maize.csv")
    
[/code]

こちらにすれば良いのでは？

[code]

    df_maize = pd.read_csv("PSD online data maize.csv", thousands=',')
    
[/code]


CC BY-SA 4.0
2023-02-05T07:42:03.747
93712
2023-02-05T07:42:03.747
26370
93708
answer