繁体   English   中英

Pandas Dataframe 到带分隔符的字符串

[英]Pandas Dataframe to String with separator

我想把 dataframe 变成一个字符串。 这个主题如何将 pandas dataframe 行转换为逗号分隔的字符串接近我想要的。 此解决方案的唯一问题:我有一个带有分隔符的字符串的“国家/地区”列(例如,使用此解决方案,dataframe 正在转换为字符串,但我的“美国”变成了“美国,美国”)所以目前我只有以下代码:

df = df.to_string(index=False).split('\n')
df = [','.join(ele.split()) for ele in df]
df = '\r\n'.join(df)
df = df.encode('utf8')

但是对于像这样的 dataframe:

data = [['United States', 10, 12], ['United Kingdom', 15, 25], ['France', 14, 18]] 
df = pd.DataFrame(data, columns = ['Country', 'Number1', 'Number2']) 

我会有

b'Country,Number1,Number2\r\nUnited,States,10,12\r\n,United,Kingdom,15,25\r\nFrance,14,18'

代替:

b'Country,Number1,Number2\r\nUnited States,10,12\r\n,United Kingdom,15,25\r\nFrance,14,18'

目前我已经解决了很多问题:

df= df.replace('United,States', 'United States') 

但这并不是一个很好的解决方案,因为每次有空间的新国家到来,我都必须更新脚本

(最终目标是将 dataframe 转换为 utf-8 中的字符串,以允许计算它的 md5,而不使用 df.to_csv() 并计算创建文件的 md5,如果你有比这个技巧更好的方法,它也可以帮助我) 谢谢!

我想将数据框转换为字符串。 本主题如何将pandas数据框行转换为逗号分隔的字符串,这与我想要的很接近。 此解决方案的唯一问题:我有一个带有字符串且带有分隔符的“国家”列(例如,使用此解决方案,数据帧正在转换为字符串,但我的“美国”已变成“美国,州”)所以目前我只有以下代码:

df = df.to_string(index=False).split('\n')
df = [','.join(ele.split()) for ele in df]
df = '\r\n'.join(df)
df = df.encode('utf8')

但是对于这样的数据框:

data = [['United States', 10, 12], ['United Kingdom', 15, 25], ['France', 14, 18]] 
df = pd.DataFrame(data, columns = ['Country', 'Number1', 'Number2']) 

我会有

b'Country,Number1,Number2\r\nUnited,States,10,12\r\n,United,Kingdom,15,25\r\nFrance,14,18'

代替:

b'Country,Number1,Number2\r\nUnited States,10,12\r\n,United Kingdom,15,25\r\nFrance,14,18'

目前,我已经通过许多方法解决了这个问题:

df= df.replace('United,States', 'United States') 

但这并不是一个很好的解决方案,因为每当一个有空间的新国家来临时,我都必须更新脚本

(最终目标是将数据帧转换为utf-8中的字符串,以便无需使用df.to_csv()即可计算其md5并计算所创建文件的md5,如果您有比此技巧更好的方法,也可以帮帮我)谢谢!

我想将数据框转换为字符串。 本主题如何将pandas数据框行转换为逗号分隔的字符串,这与我想要的很接近。 此解决方案的唯一问题:我有一个带有字符串且带有分隔符的“国家”列(例如,使用此解决方案,数据帧正在转换为字符串,但我的“美国”已变成“美国,州”)所以目前我只有以下代码:

df = df.to_string(index=False).split('\n')
df = [','.join(ele.split()) for ele in df]
df = '\r\n'.join(df)
df = df.encode('utf8')

但是对于这样的数据框:

data = [['United States', 10, 12], ['United Kingdom', 15, 25], ['France', 14, 18]] 
df = pd.DataFrame(data, columns = ['Country', 'Number1', 'Number2']) 

我会有

b'Country,Number1,Number2\r\nUnited,States,10,12\r\n,United,Kingdom,15,25\r\nFrance,14,18'

代替:

b'Country,Number1,Number2\r\nUnited States,10,12\r\n,United Kingdom,15,25\r\nFrance,14,18'

目前,我已经通过许多方法解决了这个问题:

df= df.replace('United,States', 'United States') 

但这并不是一个很好的解决方案,因为每当一个有空间的新国家来临时,我都必须更新脚本

(最终目标是将数据帧转换为utf-8中的字符串,以便无需使用df.to_csv()即可计算其md5并计算所创建文件的md5,如果您有比此技巧更好的方法,也可以帮帮我)谢谢!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM