【发布时间】:2019-10-22 00:45:02
【问题描述】:
我有一个包含以下列感兴趣的 CSV 文件
fields = ['column_0', 'column_1', 'column_2', 'column_3', 'column_4', 'column_5', 'column_6', 'column_7', 'column_8', 'column_9']
对于这些列中的每一列,有 153 行数据,仅包含两个值:-1 或 +1
我的问题是,对于每一列,我想将每个 -1 和 +1 值的频率以逗号分隔的样式逐行保存在 CSV 文件中。当我执行以下操作时,我遇到了以下问题:
>>>df = pd.read_csv('data.csv', skipinitialspace=True, usecols=fields)
>>>print df['column_2'].value_counts()
1 148
-1 5
>>>df['column_2'].value_counts().to_csv('result.txt', index=False )
然后,当我打开 results.txt 时,我发现了以下内容
148
5
这显然是我不想要的,我希望文本文件的同一行中的值用逗号分隔(例如 148、5)。
第二个问题发生在其中一个频率为零时,
>>> print df['column_9'].value_counts()
1 153
>>> df['column_9'].value_counts().to_csv('result.txt', index=False )
然后,当我打开 results.txt 时,我发现了以下内容
153
我也不希望这种行为,我希望看到 153, 0
所以,总而言之,我想知道如何用 Pandas 做到这一点
- 给定一列,将其不同值的频率保存在 csv 文件的同一行中,并用逗号分隔。例如:
148,5
- 如果存在频率为 0 的值,请将其放入 CSV。例如:
153,0
- 将这些频率值附加到同一 CSV 文件的不同行中。例如:
148,5
153,0
我可以用熊猫做到这一点吗?还是应该转移到其他 python 库?
【问题讨论】: