【发布时间】:2019-09-25 18:32:43
【问题描述】:
也许是一个非常幼稚的问题,但我被困在这个问题上:pandas.DataFrame.apply 有可能放入一个函数中。
# define function for further usage
def get_string(df):
string_input = []
for id, field in enumerate(df.index):
string_input.append('<field id="{0}" column="{1}">{2}</field>'.format(id, field, df[field]))
return '\n'.join(string_input)
如果我在 df 上应用它,我会得到 完美格式化 字符串文件输出
global_1 = '\n'.join(df.apply(get_string, axis=1))
output:
<field id="0" column="xxx">49998.0</field>
<field id="1" column="xxx">37492.0</field>
<field id="2" column="xxx">12029.0</field>
但是为什么我不必像这样在 get_string() 里面放入必要的输入全局参数 df get_string(df):
global_1 = '\n'.join(df.apply(get_string(df), axis=1))
如果我有更多输入全局参数怎么办? 我已经用谷歌搜索了一段时间,但我不是很清楚。谁能给我一些说明性的解释它是如何工作的? 感谢您的帮助。
【问题讨论】:
-
这里真的没必要用apply。向minimal reproducible example 提供示例数据和您的预期输出,您将获得更好的方法。