首页 > 解决方案 > Pandas 函数 to.csv 仅写入布尔值,但不写入数据框

问题描述

我正在尝试使用 Pandas 的函数将过滤后的 DataFrame 打印到新文件中 to.csv。这是我的代码的一部分:

df_1_S = pd.read_csv("S_YN00.csv",sep="\t", names=['ID1',"ID2","dN","dS","t","Label_ID1","Label_ID2","Group"])

S_greather_than = (df_1_S["dN"] < 6) & (df_1_S["dS"] < 6) & (df_1_S["t"] < 6)

df_1_S.loc[S_greather_than] 

代码的前一部分打印以下过滤后的 DF(值仅 <= 6):

              ID1          ID2      dN  ...   Label_ID1   Label_ID2   Group
0       QJY77946    NP_073551   0.0241  ...   229E-CoV    229E-CoV    Intra
1       QJY77954    NP_073551   0.0119  ...   229E-CoV    229E-CoV    Intra
2       QJY77954     QJY77946   0.0119  ...   229E-CoV    229E-CoV    Intra
3       QJY77962    NP_073551   0.0119  ...   229E-CoV    229E-CoV    Intra
4       QJY77962     QJY77946   0.0119  ...   229E-CoV    229E-CoV    Intra
          ...          ...     ...  ...         ...         ...     ...
252946  QKV43781     QKV43751   0.0118  ...   PEDV-CoV    PEDV-CoV    Intra
252947  QKV43781     QKV43757   0.0118  ...   PEDV-CoV    PEDV-CoV    Intra
252948  QKV43781     QKV43763   0.0059  ...   PEDV-CoV    PEDV-CoV    Intra
252949  QKV43781     QKV43769   0.0059  ...   PEDV-CoV    PEDV-CoV    Intra
252950  QKV43781     QKV43775  -0.0000  ...   PEDV-CoV    PEDV-CoV    Intra

一切都很好,但是当我尝试用这一行在新文件中打印它时:

S_greather_than.to_csv("C:/Filter_S_YN00.tsv")

在新文件中只打印布尔值:

0,True
1,True
2,True
3,True
4,True
5,True
6,True
7,False
8,True
9,True
10,True

如何解决?我想用过滤后的值打印新的 DF。欢迎任何想法或帮助谢谢!

标签: pythonpandasdataframe

解决方案


而不是你的命令

S_greather_than.to_csv("C:/Filter_S_YN00.tsv")

采用

df_1_S.loc[S_greather_than].to_csv("C:/Filter_S_YN00.tsv")

说明:

你只写了.tsv你的过滤器,而不是它的数据框过滤器。


推荐阅读