Python 如何让df.to_csv()停止在输出文件的多行上打断我的行?

Python 如何让df.to_csv()停止在输出文件的多行上打断我的行?,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个熊猫数据帧,其中包含一个长np数组作为元素之一。当我使用to_csv()函数将其写入csv时,输出文件中的每一行都被分成多行。有没有办法抑制这种行为并使数据帧的每一行只占用我的输出csv中的一行 创建示例数据框 水果蔬菜=pd.DataFrame({“类别”:[“水果”、“蔬菜”], “物品”:[np.数组([“苹果”、“梨”、“香蕉”、“葡萄柚”、“西瓜”, "荔枝,"龙果,"芒果),, np.数组([“芦笋”、“卷心菜”、“祖奇尼”、“花椰菜”, “花椰菜”、“胡萝卜”、“芹菜”]]

我有一个熊猫数据帧,其中包含一个长np数组作为元素之一。当我使用
to_csv()
函数将其写入csv时,输出文件中的每一行都被分成多行。有没有办法抑制这种行为并使数据帧的每一行只占用我的输出csv中的一行

创建示例数据框 水果蔬菜=pd.DataFrame({“类别”:[“水果”、“蔬菜”], “物品”:[np.数组([“苹果”、“梨”、“香蕉”、“葡萄柚”、“西瓜”, "荔枝,"龙果,"芒果),, np.数组([“芦笋”、“卷心菜”、“祖奇尼”、“花椰菜”, “花椰菜”、“胡萝卜”、“芹菜”]]}) ##输出到csv 水果蔬菜到csv(r'/my/file/path/EXAMPLE\u PROBLEM.csv') 生成的csv文件(实际上)如下所示:

,category,items
0,fruit,"['apple' 'pear' 'banana' 'grapefruit' 'watermelon' 'lychee' 'dragonfruit'
 'mango']"
1,vegetable,"['asparags' 'cabbage' 'zuchinni' 'broccoli' 'cauliflower' 'carrot'
 'celery']"
,category,items
0,fruit,"['apple' 'pear' 'banana' 'grapefruit' 'watermelon' 'lychee' 'dragonfruit' 'mango']"
1,vegetable,"['asparags' 'cabbage' 'zuchinni' 'broccoli' 'cauliflower' 'carrot' 'celery']"
我希望它看起来像这样:

,category,items
0,fruit,"['apple' 'pear' 'banana' 'grapefruit' 'watermelon' 'lychee' 'dragonfruit'
 'mango']"
1,vegetable,"['asparags' 'cabbage' 'zuchinni' 'broccoli' 'cauliflower' 'carrot'
 'celery']"
,category,items
0,fruit,"['apple' 'pear' 'banana' 'grapefruit' 'watermelon' 'lychee' 'dragonfruit' 'mango']"
1,vegetable,"['asparags' 'cabbage' 'zuchinni' 'broccoli' 'cauliflower' 'carrot' 'celery']"

我不确定这是不是最好的答案。如果有人可以通过将参数传递到到_csv()来解决这个问题,而不是进入并更改存储在“项目”列中的数据类型,我会将互联网点数奖励给他们

我的解决方案 当items列中的集合是
列表时,
df.to_csv()
函数似乎不会在输出文件中换行(而不是现在的
np.ndarray

##将“项目”列的元素重铸为列表
水果蔬菜[“项目”]=水果蔬菜[“项目”]。应用(lambda x:x.tolist())
##输出到csv
水果蔬菜到csv(r'/my/file/path/EXAMPLE\u PROBLEM.csv')
然后,输出变为:

,category,items
0,fruit,"['apple', 'pear', 'banana', 'grapefruit', 'watermelon', 'lychee', 'dragonfruit', 'mango']"
1,vegetable,"['asparags', 'cabbage', 'zuchinni', 'broccoli', 'cauliflower', 'carrot', 'celery']"
太长,读不下去了 在将
写入\u csv()之前,通过增加numpy的
线宽来防止换行:

np.set\u打印选项(线宽=100000)
水果蔬菜至蔬菜csv(“水果蔬菜csv”)

解释
to_csv()
写入数组的
\uu str\uuu()
输出,其中包括:

线宽:int,可选

用于插入换行符的每行字符数(默认为75)

fruit_veg.loc[0,‘items']。uuu str_uuu()
#“['苹果''梨''香蕉''葡萄柚''西瓜''荔枝''龙果'\n'芒果'”
因此,增加
线宽
,以防止75个字符换行:

np.set\u打印选项(线宽=100000)
水果蔬菜位置[0,'项目].\uuuu str\uuuuuuuuuuuuuuu()
#“['苹果''梨''香蕉''葡萄柚''西瓜''荔枝''龙果''芒果'”
csv将根据需要发布:

fruit_-veg.to_-csv('fruit_-veg.csv'))
#,类别,项目
#0,水果,[“苹果”“梨”“香蕉”“葡萄柚”“西瓜”“荔枝”“龙果”“芒果”]
#1、蔬菜,[‘芦笋’‘卷心菜’‘祖金尼’‘花椰菜’‘花椰菜’‘胡萝卜’‘芹菜’]

Dag Nabbit!我希望在这个问题上找到自己最好的答案。当你们看到这场比赛时,你们必须认清它。来之不易。这正是我所要打击的。哈,很高兴这有帮助:)