小编try*_*ame的帖子

Python PANDAS写入csv:如何设置小数点("."或",")?

在将DataFrame写入csv文件时,我似乎找不到为浮点数设置小数点("."或",")的选项.(阅读没有问题.)我的任务/问题:我正在发布一个程序/脚本,并希望所有用户都独立于他们的操作系统和语言设置来使用它,并专门生成一个带有小数点设置的csv输出,如"locale"中给出的那样.localeconv()[ "的decimal_point"]"."float_format"选项对我没用.我是否需要将每个浮点数转换为字符串并替换"." 用","?如果这是在其他地方发布的,请原谅我的错误,并提供正确的链接.

非常感谢您的时间和精力!

python csv decimal-point pandas

5
推荐指数
1
解决办法
2871
查看次数

Python:numpy/pandas根据条件更改值

我想知道是否有一种更快,更"pythonic"的方式来执行以下操作,例如使用一些内置方法.给定一个pandas DataFrame或numpy浮点数组,如果该值等于或小于0.5,我需要计算倒数值并乘以-1并将旧值替换为新计算的值."变换"可能是一个糟糕的词语选择,请告诉我你是否有更好/更准确的描述.

感谢您的帮助和支持!

数据:

import numpy as np
import pandas as pd
dicti = {"A" : np.arange(0.0, 3, 0.1), 
         "B" : np.arange(0, 30, 1),
         "C" : list("ELVISLIVES")*3}
df = pd.DataFrame(dicti)
Run Code Online (Sandbox Code Playgroud)

我的功能:

def transform_colname(df, colname):
    series = df[colname]    
    newval_list = []
    for val in series:
        if val <= 0.5:
            newval = (1/val)*-1
            newval_list.append(newval)
        else:
            newval_list.append(val)
    df[colname] = newval_list
    return df
Run Code Online (Sandbox Code Playgroud)

功能调用:

transform_colname(df, colname="A")
Run Code Online (Sandbox Code Playgroud)

** - >我在这里总结了结果,因为评论不允许发布代码(或者我不知道如何去做).**

谢谢大家快速而有力的答案!

使用ipython"%timeit"和"真实"数据:

我的功能: 10个循环,最好的3:每循环24.1毫秒

来自jojo:

def transform_colname_v2(df, colname):
    series = df[colname]        
    df[colname] = np.where(series <= …
Run Code Online (Sandbox Code Playgroud)

python conditional numpy transformation pandas

5
推荐指数
2
解决办法
6306
查看次数

python pandas:作为 DataFrame 的各个值的整数列表

问题: 如何“pd.read_csv”以使给定列中的值属于列表类型(列的每一行中的列表)?

创建 DataFrame 时(从字典,见下文),各个值的类型为列表。问题:将 DataFrame 写入文件并从文件读回 DataFrame 后,我得到一个字符串而不是列表。

创建数据框
import pandas as pd
dict2df = {"euNOG": ["ENOG410IF52", "KOG2956", "KOG1997"], 
           "neg": [[58], [1332, 753, 716, 782], [187]], 
           "pos": [[96], [659, 661, 705, 1228], [1414]]}
df = pd.DataFrame(dict2df)
Run Code Online (Sandbox Code Playgroud)

值是一个列表

type(df.loc[0, 'neg']) == list # --> True
type(df.loc[0, 'neg']) == str # --> False
df.loc[1, 'neg'][-1] == 782 # --> True
Run Code Online (Sandbox Code Playgroud) 写入文件
df.to_csv('DataFrame.txt', sep='\t', header=True, index=False)
Run Code Online (Sandbox Code Playgroud) 从文件中读取
df = pd.read_csv('DataFrame.txt', sep='\t')
Run Code Online (Sandbox Code Playgroud)

值是字符串而不是列表

type(df.loc[0, 'neg']) == list # --> …
Run Code Online (Sandbox Code Playgroud)

python list pandas

5
推荐指数
1
解决办法
5802
查看次数

标签 统计

pandas ×3

python ×3

conditional ×1

csv ×1

decimal-point ×1

list ×1

numpy ×1

transformation ×1