手簿导出数据有逗号后缀

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手簿导出数据有逗号后缀相关的知识,希望对你有一定的参考价值。

参考技术A 在选择数据分列的时候记得选择连续分隔符单个处理。
分列的步骤:1、打开一个需要批量去掉文字前逗号系统导出的【Excel表格】。
2、【全选数据】—【菜单栏】—【数据】—【分列】—【分隔符号】。
3、弹出的窗口中选择连续分隔符视为单个处理,文本识别号选择逗号。
4、列数据类型选择常规,目标区域即为需要改的单元格。
5、Excel中快速去掉导出表文字前的逗号完成。

添加逗号,变量名作为后缀

【中文标题】添加逗号,变量名作为后缀【英文标题】:Add comma with Variable name as suffix 【发布时间】:2021-04-05 23:58:51 【问题描述】:

我正在研究一种方案,通过将一列中的两个变量和另一列中的分数组合起来,将相关矩阵的所有分数附加到另一个下方,最后按降序对它们进行排序,以找出得分最高的变量。

我快到了,但发现很难在 for 循环中附加逗号 (,) 以及作为后缀的变量名(即下面代码中的第 6 行 series.add_suffix(', Temp9am')其中 var 是 for 循环中的变量名,我需要 , 在它前面。

请找到以下代码,我附上了我正在使用的数据框的屏幕截图。

df_sorted_
corre_score = pd.DataFrame()
for var in df_sorted_.columns:
    series = df_sorted_[var]
    series_ = series.add_suffix(', var')
    series1 = pd.DataFrame(series_)
    series1.columns = ['Score_']
    series1

数据框图片为

预期输出如下,所有变量都附加在另一个下方

【问题讨论】:

您不需要将var 用作var 而不是用作字符串吗?我不太确定这是否是您的问题,但这是我发现的。 series.add_suffix(',' + var) 也许? 【参考方案1】:

使用stack 将值堆叠在一列中。

然后,重命名索引。

dfn = df.stack()
dfn.index = pd.Series(list(dfn.index)).str.join(', ')

【讨论】:

【参考方案2】:

如果我的问题没有错,你可以这样做。

df.index=df.index+","
pd.DataFrame(df.stack(),columns=["Score_"]).sort_values(by='Score_', ascending=False)

【讨论】:

【参考方案3】:

尝试使用stack<dataframe>.index.map(','.join)

rs = np.random.RandomState(0)
df = pd.DataFrame(rs.rand(5, 5), columns= [ chr(i+66) for i in range(5)])
corr = df.corr()

更正:

    B           C           D           E           F
B   1.000000    0.861882    -0.687578   0.220408    -0.965567
C   0.861882    1.000000    -0.770134   -0.283359   -0.807373
D   -0.687578   -0.770134   1.000000    0.341363    0.701713
E   0.220408    -0.283359   0.341363    1.000000    -0.262302
F   -0.965567   -0.807373   0.701713    -0.262302   1.000000

corr[corr==1]=np.nan

s = corr.stack()
s.index = s.index.map(','.join)
pd.DataFrame(s, columns=['Score'])

    Score
B,C 0.861882
B,D -0.687578
B,E 0.220408
B,F -0.965567
C,B 0.861882
C,D -0.770134
C,E -0.283359
C,F -0.807373
D,B -0.687578
D,C -0.770134
D,E 0.341363
D,F 0.701713
E,B 0.220408
E,C -0.283359
E,D 0.341363
E,F -0.262302
F,B -0.965567
F,C -0.807373
F,D 0.701713
F,E -0.262302

【讨论】:

corr[corr==1]=np.nan 【参考方案4】:

你可以使用pd.DataFrame.melt,这解决了df.stack中NaN遗漏的问题:

>>> df = pd.get_dummies(list('abcd'))

>>> df
   a  b  c  d
0  1  0  0  0
1  0  1  0  0
2  0  0  1  0
3  0  0  0  1

>>> df = df.melt(value_name='Score', ignore_index=False)

>>> df.index = df.index.astype(str) + ', ' + df.pop('variable')

      Score
0, a      1
1, a      0
2, a      0
3, a      0
0, b      0
1, b      1
2, b      0
3, b      0
0, c      0
1, c      0
2, c      1
3, c      0
0, d      0
1, d      0
2, d      0
3, d      1

在您的情况下,您不需要将 df.index 转换为 astype(str)

【讨论】:

以上是关于手簿导出数据有逗号后缀的主要内容,如果未能解决你的问题,请参考以下文章

导出hive数据,用逗号分割

怎样把mysql导出表中某一列的内容用逗号隔开?

怎样把mysql导出表中某一列的内容用逗号隔开?

GNSS静态测量数据采集与内业解算

请教 MS SQL 2000数据导出的问题

phpmyadmin 导出 CSV 到 excel 删除数据