Python 如何在dataframe中读取json并将一列值更改为大写并保存json文件

Python 如何在dataframe中读取json并将一列值更改为大写并保存json文件,python,json,python-3.x,pandas,Python,Json,Python 3.x,Pandas,我正在尝试将json文件读入数据帧。然后,我尝试将整列值转换为大写。 代码如下: data = pd.read_json('demo1.json') print(data) print(data[column].str.upper()) print(data) CITY FIRST_NAME ID LAST_NAME SSN 0 Waymill Albertine 1 Jan 515-72-7353 1 Spellbri

我正在尝试将json文件读入数据帧。然后,我尝试将整列值转换为大写。 代码如下:

data = pd.read_json('demo1.json') 
print(data)
print(data[column].str.upper())
print(data)
          CITY FIRST_NAME  ID LAST_NAME          SSN
0      Waymill  Albertine   1       Jan  515-72-7353
1  Spellbridge   Maryetta   2      Hoyt  515-72-7354
2    Stoneland     Dustin   3    Divina  515-72-7355
3      Fayview      Jenna   4     Sofia  515-72-7356


0        WAYMILL
1    SPELLBRIDGE
2      STONELAND
3        FAYVIEW


Name: CITY, dtype: object
          CITY FIRST_NAME  ID LAST_NAME          SSN
0      Waymill  Albertine   1       Jan  515-72-7353
1  Spellbridge   Maryetta   2      Hoyt  515-72-7354
2    Stoneland     Dustin   3    Divina  515-72-7355
3      Fayview      Jenna   4     Sofia  515-72-7356
输出如下:

data = pd.read_json('demo1.json') 
print(data)
print(data[column].str.upper())
print(data)
          CITY FIRST_NAME  ID LAST_NAME          SSN
0      Waymill  Albertine   1       Jan  515-72-7353
1  Spellbridge   Maryetta   2      Hoyt  515-72-7354
2    Stoneland     Dustin   3    Divina  515-72-7355
3      Fayview      Jenna   4     Sofia  515-72-7356


0        WAYMILL
1    SPELLBRIDGE
2      STONELAND
3        FAYVIEW


Name: CITY, dtype: object
          CITY FIRST_NAME  ID LAST_NAME          SSN
0      Waymill  Albertine   1       Jan  515-72-7353
1  Spellbridge   Maryetta   2      Hoyt  515-72-7354
2    Stoneland     Dustin   3    Divina  515-72-7355
3      Fayview      Jenna   4     Sofia  515-72-7356
所以,我可以将值打印为大写,但是,整个数据帧没有改变


需要一些指导。

str.upper
函数的返回输出分配给具有相同名称的列以覆盖值,或分配给新名称以附加由大写值填充的新列:

data['CITY'] = data['CITY'].str.upper()
print (data)
          CITY FIRST_NAME  ID LAST_NAME          SSN
0      WAYMILL  Albertine   1       Jan  515-72-7353
1  SPELLBRIDGE   Maryetta   2      Hoyt  515-72-7354
2    STONELAND     Dustin   3    Divina  515-72-7355
3      FAYVIEW      Jenna   4     Sofia  515-72-7356

编辑:

如果需要
CITY
列到数据帧的末尾,列用于提取,然后分配给相同的列名:

df['CITY'] = df.pop('CITY').str.upper()
print (df)
  FIRST_NAME  ID LAST_NAME          SSN         CITY
0  Albertine   1       Jan  515-72-7353      WAYMILL
1   Maryetta   2      Hoyt  515-72-7354  SPELLBRIDGE
2     Dustin   3    Divina  515-72-7355    STONELAND
3      Jenna   4     Sofia  515-72-7356      FAYVIEW

如果您需要创建一个新列(如您所述)并将其转换为大写,请尝试以下操作

DataFrame.assign()
+
str.upper()

如果您只想拥有
新城市
并删除旧城市,即
城市
,则可以尝试

df = df.assign(NEW_CITY=data['CITY'].str.upper()).drop(columns=['CITY'])
使用
df.rename()


请查看我的输出结果。。使用您的代码,列正在更改,但整个数据帧没有更新。@DebrajDas-从示例数据中添加了输出,对我来说效果很好。那么如何用新列替换旧列。。例如,如何用新城市替换城市?@DebrajDas-用@DebrajDas添加了更简单的解决方案-您可以传递新的订单,如list-
df=df[['ID','FIRST\u NAME','LAST\u NAME','CITY','SSN']
df.rename(columns={'NEW_CITY':'CITY'}, inplace=True)