如何避免在panda dataframe中自动改变数据类型,并在python中转换成CSV?

2024-09-29 17:21:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用python中的pandas将Json文件转换为csv

json文件数据:

[{
    "source": "https://www.na-kd.com/en/sweaters/cardigans/button-up-ribbed-cropped-cardigan-pink",
    "class_ids": "3_33",
    "id_matrix": "0_0_0_1_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_1_0_0_0_0_0_0_0_0_0_0_0_0",
    "tags": "cardigan_neckline",
    "front": "https://www.na-kd.com/globalassets/nakd_button_up_ribbed_cropped_cardigan_1018-004495-0211_01g.jpg",
    "back": "https://www.na-kd.com/globalassets/nakd_button_up_ribbed_cropped_cardigan_1018-004495-0211_02a.jpg",
    "left": "https://www.na-kd.com/globalassets/nakd_button_up_ribbed_cropped_cardigan_1018-004495-0211_03b.jpg",
    "right": "https://www.na-kd.com/globalassets/nakd_button_up_ribbed_cropped_cardigan_1018-004495-0211_04c.jpg",
    "zoomedin": "https://www.na-kd.com/globalassets/nakd_button_up_ribbed_cropped_cardigan_1018-004495-0211_05g.jpg",
    "otherurl": "https://www.na-kd.com/globalassets/nakd_button_up_ribbed_cropped_cardigan_1018-004495-0211_05g.jpg"
}, {...}, {...}]

我的代码转换成CSV文件..(但是熊猫会自动更改“id\u matrix”和“class\u ids”的数据类型,我希望这些列字符串。。你知道吗

raw_data=pd.read_json('/home/mobin/PycharmProjects/na-kd/Jsons/mapped_improvedcheck.json')
raw_data.to_csv("csv_file/samplecheck.csv")

result = raw_data.dtypes
print(result)
print(raw_data['id_matrix'][:10])

此代码的输出:

source        object
class_ids      int64
id_matrix    float64
tags          object
front         object
back          object
left          object
right         object
zoomedin      object
otherurl      object
dtype: object
0    1.000000e+43
1    1.000000e+43
2    1.000000e+43
3    1.000000e+43
4    1.000000e+43
5    1.000000e+43
6    1.000000e+43
7    1.000000e+43
8    1.000000e+43
9    1.000000e+43

Tags: csvhttpscomobjectwwwbuttonkdjpg
3条回答

您可以使用pandas.DataFrame^{}属性:

import pandas as pd

raw_data = pd.read_json('/home/mobin/PycharmProjects/na-kd/Jsons/mapped_improvedcheck.json')
raw_data2 = raw_data.astype('object')
raw_data2.to_csv('csv_file/samplecheck.csv')

result = raw_data2.dtypes
print(result)
print(raw_data2['id_matrix'][:10])

更新:我在samplecheck.csv文件中得到的是:

,back,class_ids,front,id_matrix,left,otherurl,right,source,tags,zoomedin
0,https://www.na-kd.com/globalassets/nakd_button_up_ribbed_cropped_cardigan_1018-004495-0211_02a.jpg,333,https://www.na-kd.com/globalassets/nakd_button_up_ribbed_cropped_cardigan_1018-004495-0211_01g.jpg,1e+42,https://www.na-kd.com/globalassets/nakd_button_up_ribbed_cropped_cardigan_1018-004495-0211_03b.jpg,https://www.na-kd.com/globalassets/nakd_button_up_ribbed_cropped_cardigan_1018-004495-0211_05g.jpg,https://www.na-kd.com/globalassets/nakd_button_up_ribbed_cropped_cardigan_1018-004495-0211_04c.jpg,https://www.na-kd.com/en/sweaters/cardigans/button-up-ribbed-cropped-cardigan-pink,cardigan_neckline,https://www.na-kd.com/globalassets/nakd_button_up_ribbed_cropped_cardigan_1018-004495-0211_05g.jpg

相关问题 更多 >

    热门问题